<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">
<!--
Default (or Build) 生命週期
validate 檢查工程配置是否正確,完成構建過程的全部必要信息是否可以獲取到。
initialize 初始化構建狀態,例如設置屬性。
generate-sources 生成編譯階段須要包含的任何源碼文件。
process-sources 處理源代碼,例如,過濾任何值(filter any value)。
generate-resources 生成工程包中須要包含的資源文件。
process-resources 拷貝和處理資源文件到目的目錄中,爲打包階段作準備。
compile 編譯工程源碼。
process-classes 處理編譯生成的文件,例如 Java Class 字節碼的增強和優化。
generate-test-sources 生成編譯階段須要包含的任何測試源代碼。
process-test-sources 處理測試源代碼,例如,過濾任何值(filter any values)。
test-compile 編譯測試源代碼到測試目的目錄。
process-test-classes 處理測試代碼文件編譯後生成的文件。
test 使用適當的單元測試框架(例如JUnit)運行測試。
prepare-package 在真正打包以前,爲準備打包執行任何須要的操做。
package 獲取編譯後的代碼,並按照可發佈的格式進行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test 在集成測試執行以前,執行所需的操做。例如,設置所需的環境變量。
integration-test 處理和部署必須的工程包到集成測試可以運行的環境中。
post-integration-test 在集成測試被執行後執行必要的操做。例如,清理環境。
verify 運行檢查操做來驗證工程包是有效的,並知足質量要求。
install 安裝工程包到本地倉庫中,該倉庫能夠做爲本地其餘工程的依賴。
deploy 拷貝最終的工程包到遠程倉庫中,以共享給其餘開發人員和工程。
說明:mvn compile,只有該階段以前以及包括該階段在內的全部階段會被執行。
-->
<modelVersion>4.0.0</modelVersion>
<!-- 工程組的標識 -->
<groupId>com.maven.com</groupId>
<!-- 工程的標識 -->
<artifactId>maven</artifactId>
<!-- 打包成的類型:war jar -->
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>maven Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 遠程倉庫 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- 外部依賴 (當不能使用遠程倉庫時,能夠考慮外部依賴)-->
<!--
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\main\resources\ojdbc.jar</systemPath>
</dependency>
-->
</dependencies>
<build>
<finalName>maven</finalName>
<!-- 插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>id.clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>clean phase</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<!-- mvn:site Maven Site 插件通常用來建立新的報告文檔、部署站點等 -->
<!--
site生命週期:
pre-site
site
post-site
site-deploy
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>id.pre-site</id>
<phase>pre-site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>pre-site phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>id.site</id>
<phase>site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>site phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>id.post-site</id>
<phase>post-site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>post-site phase</echo>
</tasks>
</configuration>
</execution>
<execution>
<id>id.site-deploy</id>
<phase>site-deploy</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>site-deploy phase</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<!-- 構建自動化:有兩個項目依賴本項目,分別爲 app-web-ui與app-desktop-ui,一旦本項目建立成功,則會加載app-web-ui與app-desktop-ui-->
<!-- 具體實例:http://wiki.jikexueyuan.com/project/maven/build-automation.html -->
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.6</version>
<configuration>
<debug>true</debug>
<pomIncludes>
<pomInclude>app-web-ui/pom.xml</pomInclude>
<pomInclude>app-desktop-ui/pom.xml</pomInclude>
</pomIncludes>
</configuration>
<executions>
<execution>
<id>build</id>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- maven自動化部署到tomcat: mvn clean package tomcat7:deploy -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<server>local_server</server>
<url>http://localhost:8081/manager/text</url>
<path>/${project.build.finalName}</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
html