标签:des style blog http io ar color os sp
运行 cmd
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这个archetype是一个插件,generate是运行参数,或者说目标
Maven标准的项目结构:
src/main/java |
源代码 |
src/main/resources |
资源文件 |
src/main/filters |
资源过滤 |
src/main/config |
配置文件 |
src/main/scripts |
脚本 |
src/main/webapp |
Web程序源代码 |
src/test/java |
测试的源代码 |
src/test/resources |
测试的资源 |
src/test/filters |
测试的资源过滤 |
src/it |
集成测试(主要用于插件) |
src/assembly |
Assembly descriptors |
src/site |
自动生成的网站 |
生成后在根目录会有个pom.xml,然后是src和target文件夹:
resource会自动复制到target的classpath
<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>com.mycompany.app</groupId> 包名 <artifactId>my-app</artifactId> 项目名,也用于生成的jar包名 <packaging>jar</packaging> 默认为jar,后面详述 <version>1.0-SNAPSHOT</version> 版本 <name>my-app</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>
构建:
mvn package
这个package是事先定义好的,是某个生命周期的一个阶段,会自动按以下顺序执行:
可以测试一下:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
关于构建的生命周期:
有三个是内置的,default, clean , site
每个生命周期都是由不同阶段组成,比如default就包括了:
执行下面的,总是会从最上面开始,按顺序执行
同一个命令可以有多个构建周期的阶段,如
mvn clean install 会先clean,再install
一个插件的参数代表一个特定的任务,可能被绑定到0或多个生命周期阶段
可以直接在命令行执行,也就是直接调用插件,如:
mvn clean dependency:copy-dependencies package
一个生命周期阶段可以包含0或多个插件参数,但0个的话不能被执行
那么怎么安排这些插件参数给一个生命周期阶段呢?
一、通过pom.xml的packaging:默认为jar,会自动调用以下插件
process-resources |
resources:resources |
compile |
compiler:compile |
process-test-resources |
resources:testResources |
test-compile |
compiler:testCompile |
test |
surefire:test |
package |
jar:jar |
install |
install:install |
deploy |
deploy:deploy |
二、通过pom.xml的plugin,直接设置插件和参数:将在packaging后面执行
关于更详细的三个生命周期:
Clean Lifecycle
pre-clean |
|
clean |
构建的所有东西都被移除 |
post-clean |
|
Default Lifecycle
validate |
|
initialize |
初始化,比如设环境变量,建文件夹 |
generate-sources |
|
process-sources |
|
generate-resources |
|
process-resources |
|
compile |
编译 |
process-classes |
编译后处理 |
generate-test-sources |
|
process-test-sources |
|
generate-test-resources |
|
process-test-resources |
|
test-compile |
测试的编译 |
process-test-classes |
|
test |
|
prepare-package |
|
package |
|
pre-integration-test |
|
integration-test |
|
post-integration-test |
|
verify |
|
install |
把包安装到本地代码库,供其他项目调用 |
deploy |
部署到远程代码库,供他人调用 |
Site Lifecycle
pre-site |
|
site |
生成网站文档 |
post-site |
|
site-deploy |
部署到Web服务器 |
标签:des style blog http io ar color os sp
原文地址:http://www.cnblogs.com/gcg0036/p/4149102.html