码迷,mamicode.com
首页 > 其他好文 > 详细

Maven上路

时间:2014-12-07 08:59:57      阅读:291      评论:0      收藏:0      [点我收藏+]

标签: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是运行参数,或者说目标
bubuko.com,布布扣 
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是事先定义好的,是某个生命周期的一个阶段,会自动按以下顺序执行:
  1. validate
  2. generate-sources
  3. process-sources
  4. generate-resources
  5. process-resources
  6. compile
bubuko.com,布布扣 
可以测试一下:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
bubuko.com,布布扣 
关于构建的生命周期:
有三个是内置的,default, clean , site
每个生命周期都是由不同阶段组成,比如default就包括了:
  • validate - 校验
  • compile -编译
  • test - 用某个单元测试框架测试
  • package - 把编译好的东西打包
  • integration-test - 集成测试
  • verify - 校验
  • install -把包安装到本地代码库,供其他项目调用
  • deploy - 部署到远程代码库,供他人调用

执行下面的,总是会从最上面开始,按顺序执行

同一个命令可以有多个构建周期的阶段,如

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服务器

Maven上路

标签:des   style   blog   http   io   ar   color   os   sp   

原文地址:http://www.cnblogs.com/gcg0036/p/4149102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!