介绍了Maven常用的命令,具体介绍如果通过Maven生成项目骨架以及其他命令
Maven常用命令
mvn archetype:generate 生成项目骨架
上一篇文章说到,Maven可以帮我们构建项目,制定一个标准的项目骨架,那如何生成项目骨架呢?可以采用Archetype生成。
➜ ~ mvn archetype:generate
上面命令实际上是运行插件maven-archetype-plugin,没有指定插件的版本,默认使用的是最新稳定版,实际的执行命令如下。在Maven2.0之前就需要指定插件版本号。
➜ ~ mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate
第一次执行的时候,会下载一些文件,包括archetype的插件,下载好了会发现.m2/repository/
多出了很多文件夹,下图红框为新增下载的内容。
具体archetype其他命令的使用,可以通过help
➜ ~ mvn archetype:help
执行默认命令后,如果不添加任何参数,默认会输出2000多个项目骨架给我们选择,所以等待全部输出需要点时间。在Maven仓库网站自行搜索。
➜ ~ 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
,再输入版本号,就开始下载了。
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
选择的项目骨架创建一个项目了。
输出项目结构
➜ 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文件了。
➜ 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