Maven学习笔记3:在idea中使用Maven

Posted fau152

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven学习笔记3:在idea中使用Maven相关的知识,希望对你有一定的参考价值。

Maven学习笔记

一、idea创建JavaSE项目




二、idea设置maven

idea中内置了maven ,一般不使用内置的,因为用内置修改maven的设置不方便。

使用自己安装的maven,需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息。

Settings配置当前工程的设置



maven创建时,会联网下载模板文件,比较大,使用
-DarchetypeCatalog=internal,不用下载,创建maven项目比较快

配置所有项目(新建项目)的Maven

配置所有项目(新建项目)的默认本地maven仓库的位置

之后的设置和Settings一样

三、使用idea中的maven工具窗口

我们使用idea来进行单元测试,顺便介绍idea的一些使用技巧

每一个测试方法都是可以独立执行,也可以全部执行

来看一下Maven工具窗口


依赖这个窗口可以直观的看到各个依赖之间的关系

四、idea创建JavaWeb项目





创建成功之后我们看到,这里的很多文件夹都是要手动去添加的


之后再修改pom.xml的一些设置,整理完之后就是如下这样

配置tomcat服务器

添加tomcat的配置



之前不适用Maven的时候我们需要手动导入依赖,使用Maven之后,我们只需要再pom.xml文件中添加依赖的坐标即可

	<!-- servlet依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>

添加新的依赖之后,本地仓库中没有下载这个依赖,可能会报红色错误,这时刷新一下pom.xml就可以了

或者点击Maven工具窗口中的刷新也可

之后就可以正常进行JavaWeb项目的开发了

五、依赖管理

依赖范围

依赖范围使用<scope>表示,他的值有compile、test、provided
表示依赖在maven构建项目的哪些阶段起作用
compile在编译以及编译之后的所有阶段都要用到
test只在测试阶段用得到
provided是提供者,不参与打包以及后面的步骤

六、Maven常用属性

maven属性设置

maven的属性设置在properties标签中进行

  <properties>
    <!-- maven构建项目使用编码,防止中文乱码 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- 编译代码使用的jdk版本 -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <!-- 运行代码使用的jdk版本 -->
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

Maven的全局变量

自定义的属性:

  1. <properties>中通过自定义标签声明变量(标签名就是变量名)
  2. 在pom.xml文件中的其他位置,使用$标签名使用变量的值

自定义全局变量一般是定义依赖的版本号,当项目中出现多个相同的版本号时,先使用全局变量定义,再使用$变量名
例子:

资源插件

  1. 默认没有使用resources的时候,maven执行编译代码时,会把src/main/resources目录中的文件拷贝到target/classes目录中。
    对于src/main/java目录下的非java文件不处理,不拷贝到 target/classes目录中
  2. 我们的程序有需要把一些文件放在src/main/java目录中,当我在执行java程序时,
    需要用到src/ main/java目录中的文件。
    需要告诉maven 在mvnm compile src/main/java目录下的程序时,需要把文件一同拷贝到target/classes目录中。
    此时就需要在<build>中加入<resources>.
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties ,.xml 文件都会扫描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <!--filtering选项 false 不启用过滤器,*.property已经起到过滤的作用了-->
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>

不加以上资源插件,编译后的target是这样的

添加资源插件之后,编译之后,将里面的a.properties和b.xml文件拷贝过去了,但是c.txt没有拷贝


以上是关于Maven学习笔记3:在idea中使用Maven的主要内容,如果未能解决你的问题,请参考以下文章

❤️答应粉丝的Maven仓库学习笔记,今天它来了!一起来学习快速入门Maven❤️

❤️答应粉丝的Maven仓库学习笔记,今天它来了!一起来学习快速入门Maven❤️

Maven基础-00-笔记

Maven基础-00-笔记

Maven基础-00-笔记

JDBC查阅笔记---IDEA导入Maven项目