Maven
记录从安装 maven 到创建 idea 项目的过程,目前还只使用了 maven 的导包功能,比以前手动导包及寻找依赖包方便了不少,只需要在 pom.xml
文件中配置一下即可自动导入以及相关的包,但前提还是要找到正确的 jar 包,其他功能等以后用到的时候再进一步了解。
-
准备工作
从官网下载并解压到自己的工作路径
配置环境变量
添加
MAVEN_HOME
映射当前的maven文件夹,比如我当前对应的maven文件夹D:Workapache-maven-3.6.1-binapache-maven-3.6.1
然后再 path 中添加%MAVEN_HOME%in
验证是否安装成功
输入 mvn -version
能够成功显示当前版本即为安装成功
-
配置
将 maven 目录下
conf/settings.xml
中的远程仓库地址改为阿里云镜像,因为 maven 默认的仓库在国外,国内访问导包的时候速度太慢甚至无法下载。对应的<mirror>
标签一定要放在<mirrors>
标签中包起来,否则无法生效,之前弄错一次
<mirrors>
...
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
-
使用idea创建maven项目
到此 maven 已经配置完毕了可以直接使用了,下面是用 idea 创建 maven 普通项目和 JavaWeb项目的详细步骤
- 创建普通项目
创建完成后对应的目录结构如下,java 对应源码目录,resources 对应资源路径, test.java 对应测试目录。
下面的
pom.xml
即为 Maven 的工程配置文件
- Maven 创建 JavaWeb 项目
其他步骤和创建普通项目相同,选择正确的 maven 下一步下一步就可以了,创建完成后记得勾选自动导包功能。
web 项目创建完成后默认的没有源码目录和资源目录,需要手动创建,创建完成后指定为相应的目录即可
然后为项目添加 tomcat 服务器
到此创建就完成了。
-
Maven 如何导包及对应包的查询方法
比如现在要在普通项目下导入一个 junit
的测试 jar 包,在 pom.xml
文件中添加
<dependencies>
...
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
</dependencies>
可以看到 Maven 自动帮我们导入了
junit
和对应的依赖包hamcrest-core
两个 jar 包,不用我们手动的再去下载并导入
附 Maven 包的查询网站
https://mvnrepository.com/
只需要知道对应包的名字即可查询到对应的
另外记录一下idea 中 src
目录下的资源导出问题
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
...
</build>
更正-这样会使resources下的资源失效,因为没有包含resources下的资源文件,修正只添加<include>
就可以了
修改 maven 默认 JDK 版本为1.8
<profile>
<id>jdk-1.8</id>
<activation>
<jdk>1.8</jdk>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>