一、自定義變量
<!-- 全局屬性配置 --> <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、有時候插件檢查不通過,需要人為的忽略對有些插件的檢查