Maven 快速入门
创建 Maven 工程
初始化工程
执行指令:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
会在当前路径新建一个名为 my-app 的 Maven 工程,其目录结构如下:
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java
其中, src/main/java 目录包含 java 源码, src/test/java 目录包含 java 测试源码,而 pom.xml 文件是 maven 工程的配置文件。
构建项目
执行以下命令,即可构建项目:
mvn clean package -Dmaven.test.skip=true -B -U
构建成功后,会输出类似下面的信息:
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.953 s
[INFO] Finished at: 2019-11-24T13:05:10+01:00
[INFO] ------------------------------------------------------------------------
这时,在当前路径下会产生一个 target 目录,其中包含了构建的输出物,如:jar 包、class 文件等。
这时,我们可以执行以下命令启动 jar 包:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
四、使用说明
如何添加依赖
在 Maven 工程中添加依赖 jar 包,很简单,只要在 POM 文件中引入对应的<dependency>标签即可。
参考下例:
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zp.maven</groupId>
<artifactId>MavenDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MavenDemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>3.8.1</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
<dependency> 标签最常用的四个属性标签:
<groupId>- 项目组织唯一的标识符,实际对应 JAVA 的包的结构。<artifactId>- 项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。<version>- jar 包的版本号。可以直接填版本数字,也可以在 properties 标签中设置属性值。<scope>- jar 包的作用范围。可以填写 compile、runtime、test、system 和 provided。用来在编译、测试等场景下选择对应的 classpath。
如何寻找 jar 包
可以在 http://mvnrepository.com/ 站点搜寻你想要的 jar 包版本
例如,想要使用 log4j,可以找到需要的版本号,然后拷贝对应的 maven 标签信息,将其添加到 pom .xml 文件中。
如何使用 Maven 插件(Plugin)
要添加 Maven 插件,可以在 pom.xml 文件中添加 <plugin> 标签。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<configuration> 标签用来配置插件的一些使用参数。
如何一次编译多个工程
假设要创建一个父 maven 工程,它有两个子工程:my-app 和 my-webapp:
+- pom.xml
+- my-app
| +- pom.xml
| +- src
| +- main
| +- java
+- my-webapp
| +- pom.xml
| +- src
| +- main
| +- webapp
app 工程的 pom.xml 如下,重点在于在 modules 中引入两个子 module:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>my-app</module>
<module>my-webapp</module>
</modules>
</project>
选择编译 XXX 时,会依次对它的所有 Module 执行相同操作。