Maven -- 第一次使用Maven

时间:2022-05-19 23:16:50

通过命令构建Java项目,打包,及运行

mvn archetype:generate -DgroupId=org.sonatypea.mavenbook.ch03 -DartifactId=NumberGenerator -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在安装好maven的基础上,我们再windows系统命令模式下,执行以上语句。即可基于maven构建一个简单的java项目。
Maven -- 第一次使用Maven

mvn install

在pom.xml所在的目录下执行此行命令,构建及打包这个应用,执行成功后,会在目录下生产一个target文件夹
Maven -- 第一次使用Maven

运行程序

java -cp target/NumberGenerator-1.0-SNAPSHOT.jar org.sonatypea.mavenbook.ch03.App

Maven -- 第一次使用Maven

pom.xml范例

<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/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>org.sonatypea.mavenbook.ch03</groupId>
<artifactId>NumberGenerator</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>NumberGenerator</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

groupId, artifactId, version, scope构成了maven的坐标。

mvn help:effective-pom

用来查看当前工程的完整的pom文件, 比如从父类pom以及默认pom继承的内容

Maven生命周期

Maven有三套相互独立的生命周期,分别为clean、default和site。clean生命周期的目的是清理项目,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点。
clean生命周期的目的是清理项目,它包括如下三个阶段:

a)pre-clean:执行一些清理前需要完成的工作。

b)clean:清理上一次构建的文件。

c)post-clean:执行一些清理后需要完成的工作。

default生命周期定义了真正构建时所需要执行的所有步骤,它是所有生命周期中最核心的部分。

a)validate

b)initialize

c)generate-sources

d)process-sources

e)generate-resources

f) process-resources

g)compile:编译项目的主源码,即编译src/main/java目录下的Java文件至项目输出的主classpath中。

h)process-classes

i)generate-test-sources

j)process-test-sources

k)generate-test-resources

l)process-test-resources

m)test-compile:编译项目的测试代码,即编译src/test/java目录下的Java文件至项目输出的测试classpath目录中。

n)process-test-classes

o)test:使用单元测试框架运行测试。

p)prepare-package

q)package:接受编译好的代码,打包成可发布的格式。如:.jar

r)pre-integration-test

s)integration-test

t)post-integration-test

u)verify

v)install:将包安装到Maven本地仓库,供本地其他Maven项目使用。

w)deploy:将最终的包复制到远程仓库,供其他开发人员和Maven项目使用。

site生命周期的目的是建立和发布项目站点。

a)pre-site:执行一些在生成项目站点之前需要完成的工作。

b)site:生成项目站点文档。

c)post-site:执行一些在生成项目站点之后需要完成的工作。

d)site-deploy:将生成的项目站点发布到服务器上。

查看项目依赖树

mvn dependency:tree