一、自定義變量
<!-- 全局屬性配置 --> <properties> <project.build.name>tools</project.build.name> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
project.build.name: 用來定義war包名稱
project.build.sourceEncoding: 用來定義資源文件的編碼格式
二、maven插件配置
1、編譯插件
<!-- 編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
source:源代碼編譯版本;
target:目標平台編譯版本;
encoding:字符集編碼。
2、設置資源文件的編碼方式
<!-- 設置資源文件的編碼方式 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
xml、properties文件都是資源文件,編碼的時候遇到中文總要進行轉碼!用什么編碼?UTF-8,那就記得強制<encoding>${project.build.sourceEncoding}</encoding>
3、自動拷貝jar包到target目錄
<!-- 依賴插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- ${project.build.directory}為Maven內置變量,缺省為target -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- 表示是否不包含間接依賴的包 -->
<excludeTransitive>false</excludeTransitive>
<!-- 表示復制的jar文件去掉版本信息 -->
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
在部署war包時,需要將項目依賴的jar包,也打到war包中,因此就會用到上述插件
4、生成源代碼jar包
<!-- 源代碼打包插件 -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- <finalName>${project.build.name}</finalName> -->
<attach>true</attach>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
該插件主要用於在打jar包時,把源代碼也打成jar包
5、將項目打成jar包
在將項目打成jar包時,有時會需要將項目打成可以直接運行的jar包,因此就需要將項目依賴的jar包也打入jar包中,此時需要在Eclipse上安裝例外一個插件,用來打可執行jar包,詳情見鏈接http://zheng12tian.iteye.com/blog/1765626
6、將項目打成war包
<!-- war插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!-- <warName>${project.build.name}</warName> -->
</configuration>
</plugin>
encoding:強制字符集編碼
warName:war包名字——platform.war
webappDirectory:產生war前,用於存放構建war包的目錄——target/platform。
warSourceDirectory:我把web工程搞成了eclipse下的WTP類型。我不喜歡maven產生的webapp目錄,更喜歡WebContent!
需要注意的是:
采用上述插件部署項目的話,使用clean package tomcat:redeploy命令。使用該命令前,需要先啟動tomcat,實際上是為了讓tomcat啟動manager項目,實現動態部署
此部署方式雖然也是動態部署的范疇,但是每次修改文件后,需要手動再次重新部署,才會加載更改。
如果想讓tomcat自動掃描項目的改動,自動加載,那么需要將maven工程的java全部編譯的webapp目錄下,然后將jar包和資源文件也打到webapp目錄。最后在$CATALINA_HOME/conf /Catalina/localhost中添加一個xml文件,修改docbase為webapp目錄。
Tomcat常用的部署方式介紹:http://blog.csdn.net/yangxueyong/article/details/6130065
7、在打包時,需要清空一些指定的目錄
<!-- clean插件 -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/WEB-INF/classes</directory>
</fileset>
<fileset>
<directory>src/main/webapp/WEB-INF/lib</directory>
</fileset>
<fileset>
<directory>${project.build.directory}</directory>
</fileset>
</filesets>
</configuration>
</plugin>
8、利用tomcat-maven-plugin插件將項目自動打包並部署到tomcat中
url:是指tomcat的manager訪問地址
server:這個是tomcat服務名稱設置,需要配置maven的settings.xml文件,在servers節點中手動配置server,如下所示:
<plugin>
<!-- 指定插件名稱及版本號 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<!-- 插件的Tomcat6.x配置 -->
<configuration>
<!-- 容器的配置 -->
<container>
<!-- 指定服務器版本 -->
<containerId>tomcat6x</containerId>
<!-- 指定服務器的安裝目錄 -->
<home>E:\Program Files\tomcat-6.0.32</home>
</container>
<!-- 具體的配置 -->
<configuration>
<!-- 部署模式:existing、standalone等 -->
<type>existing</type>
<!-- Tomcat的位置,即catalina.home -->
<home>E:\Program Files\tomcat-6.0.32</home>
<!-- 配置屬性 -->
<properties>
<!-- 管理地址 -->
<cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url>
<!-- Tomcat用戶名 -->
<cargo.remote.username>admin</cargo.remote.username>
<!-- Tomcat密碼 -->
<cargo.remote.password>admin</cargo.remote.password>
<!-- <cargo.jvmargs> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787 </cargo.jvmargs> -->
</properties>
</configuration>
</configuration>
</plugin>
username和password:是指tomcat的tomcat-users.xml文件中配置的,文件路徑為E:\Program Files\tomcat-6.0.32\conf\tomcat-users.xml,如下所示:
<role rolename="manager"/> <user password="admin" roles="manager" username="admin"/>
10、有時候插件檢查不通過,需要人為的忽略對有些插件的檢查

