构建工具(二):Maven常用命令

介绍了Maven常用的命令,具体介绍如果通过Maven生成项目骨架以及其他命令

Maven常用命令

mvn archetype:generate 生成项目骨架

上一篇文章说到,Maven可以帮我们构建项目,制定一个标准的项目骨架,那如何生成项目骨架呢?可以采用Archetype生成。

1
➜  ~ mvn archetype:generate

上面命令实际上是运行插件maven-archetype-plugin,没有指定插件的版本,默认使用的是最新稳定版,实际的执行命令如下。在Maven2.0之前就需要指定插件版本号。

1
➜  ~ mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate

第一次执行的时候,会下载一些文件,包括archetype的插件,下载好了会发现.m2/repository/多出了很多文件夹,下图红框为新增下载的内容。

具体archetype其他命令的使用,可以通过help

1
➜ ~ mvn archetype:help

执行默认命令后,如果不添加任何参数,默认会输出2000多个项目骨架给我们选择,所以等待全部输出需要点时间。在Maven仓库网站自行搜索。

1
2
3
4
5
6
➜  ~ mvn archetype:generate
// 省略
1173: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
// 省略
2136: remote -> xyz.luan.generator:xyz-generator (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1173:

直接输入前面的数字回车就可以了,比如我输入1173,再输入版本号,就开始下载了。

1
2
3
4
5
6
7
8
9
10
Define value for property 'groupId': com.guidongyuan.testmaven
Define value for property 'artifactId': helloworld
Define value for property 'version' 1.0-SNAPSHOT: :
Define value for property 'package' com.guidongyuan.testmaven: : com.guidongyuan.tesmaven.helloworld
Confirm properties configuration:
groupId: com.guidongyuan.testmaven
artifactId: helloworld
version: 1.0-SNAPSHOT
package: com.guidongyuan.testmaven.helloworld
Y: : Y

然后再输入groupId,artifactId,version等参数,就可以按1173选择的项目骨架创建一个项目了。

输出项目结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
➜  tree
.
└── helloworld
├── pom.xml
└── src
├── main
│   └── java
│   └── com
│   └── guidongyuan
│   └── testmaven
│   └── helloworld
│   └── App.java
└── test
└── java
└── com
└── guidongyuan
└── testmaven
└── helloworld
└── AppTest.java
14 directories, 3 files

mvn compile 编译源代码

mvn mvn test-compile 编译测试代码

mvn test 运行应用程序中的单元测试

mvn clean 清除目标目录中的生成结果

执行该命令,会把编译运行生成的target文件删除掉

mvn package 依据项目生成jar文件

执行该命令后,会在target中输出jar文件

mvn install 在本地repository中生成jar文件

执行上面的package命令后,只是在项目中输出jar文件,如果其他项目也需要引用该jar,那就可以把jar包放在仓库上,让其他项目去直接引用。执行install命令后,就可以在自己的仓库中目录上输出jar文件了。

1
2
3
4
5
6
7
8
9
10
➜  repository tree com/guidongyuan
com/guidongyuan
└── testmaven
└── helloworld
├── 1.0-SNAPSHOT
│   ├── _remote.repositories
│   ├── helloworld-1.0-SNAPSHOT.jar
│   ├── helloworld-1.0-SNAPSHOT.pom
│   └── maven-metadata-local.xml
└── maven-metadata-local.xml

###参考链接

公众号:亦袁非猿

欢迎关注,交流学习