使用tomcat7-maven-plugin部署Web項目


 

一、環境准備
我使用的環境是:Window 10、Tomcat 8.0.36、maven3、tomcat7-maven-plugin 2.2版本。
二、設置環境變量
安裝Tomcat8.0.36和maven之后設置環境變量,Tomcat設置環境變量時,key為必須為CATALINA_HOME。
1.設置maven環境變量
MAVEN =D:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.1.3\plugins\maven\lib\maven3\bin
(我直接引用了InteljiIDEA中的maven)
2、設置TOMACAT環境變量
CATALINA_HOME=E:\tomcat\apache-tomcat-8.0.36
3、將他們添加到PATH中
PATH=%MAVEN%;%CATALINA_HOME%\bin;

三、在Tomcat中配置用戶權限
在tomcat的配置文件tomcat_user.xml(%CATALINA_HOME%\conf\tomcat.user.xml)中的< tomcat-users >標簽中添加

<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="username" password="password" roles="manager-gui,manager-script"/>
  • 1
  • 2
  • 3

四、在Maven的settings.xml配置Server
在Maven的配置文件settings.xml(%MAVEN%\conf\settings.xml)中的< servers > 中加入

<server> <id>tomcat8</id> <username>username</username> <password>password</password> </server>
  • 1
  • 2
  • 3
  • 4
  • 5

這里的username 、password就填我們在tomcat中配置的那個用戶名,和密碼
這里的設置的 id為 tomcat8 我們將在項目的 pom.xml中填寫。

五、在項目的pom.xml中配置tomcat7-maven-plugin插件
在< build> 中引入插件:

 <build> <pluginManagement> <plugins> ... <!-- 配置tomcat 插件 --> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>tomcat8</server> <path>/test</path> <update>true</update> </configuration> </plugin> </plugins> </pluginManagement> ....
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

注意
1、這里的 < server> 中填寫的就是為們在%MAVEN%\conf\settings.xml配置中的那個id
即 tomcat8.
2、由於我用的tomcat8這里的< url> 必須配置成 xxx/manager/text否則會部署不成功

3、由於部署時會下載一些東西最還是在 pom.xml 的< project >標簽下加入以下代碼:

<repositories> <repository> <id>people.apache.snapshots</id> <url> http://repository.apache.org/content/groups/snapshots-group/ </url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>apache.snapshots</id> <name>Apache Snapshots</name> <url>http://repository.apache.org/content/groups/snapshots-group/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

六、deploy
1、開啟tomcat
2、在pom.xml所在的目錄執行 mvn tomcat7:deploy 命令部署項目。

七、遇到的問題
1、在Window系統下執行在執行 mvn tomcat7:undeploy時,會有殘留在tomcat目錄下
解決方法:在tomcat的配置文件context.xml中 的< Context >標簽中添加屬性:antiJARLocking=”true” antiResourceLocking=”true”

<Context antiJARLocking="true" antiResourceLocking="true">




一個基本maven項目的pom.xml配置

標簽: mavenpom.xml插件配置
分類:

繼續之前創建的test項目,一個基本項目的pom.xml文件,通常至少有三個部分

第一部分,項目坐標,信息描述等

[html] view plain copy
  1. <modelVersion>4.0.0</modelVersion>  
  2. <groupId>com.company.project</groupId>  
  3. <artifactId>module</artifactId>  
  4. <packaging>war</packaging>  
  5. <version>0.0.1-SNAPSHOT</version>  
  6. <name>test Maven Webapp</name>  
  7. <url>http://maven.apache.org</url>  

modelVersion:pom文件的模型版本

關於group id和artifact id,為了便於多人多模塊協同開發管理(以后會講),建議使用以下命名規范

group id:com.公司名.項目名

artifact id:功能模塊名

packaging:項目打包的后綴,war是web項目發布用的,默認為jar

version:     artifact模塊的版本

name和url:相當於項目描述,可刪除

group id + artifact id +version :項目在倉庫中的坐標

 

第二部分,引入jar包

[html] view plain copy
  1. <dependencies>  
  2.     <dependency>  
  3.         <groupId>junit</groupId>  
  4.         <artifactId>junit</artifactId>  
  5.         <version>3.8.1</version>  
  6.         <scope>test</scope>  
  7.     </dependency>  
  8. </dependencies>  

這是創建項目時自動生成的,將junit-3.8.1.jar引入到項目中。

dependency:引入資源jar包到本地倉庫,要引入更多資源就在<dependencies>中繼續增加<dependency>

group id+artifact id+version:資源jar包在倉庫中的坐標

scope:作用范圍,test指該jar包僅在maven測試時使用,發布時會忽略這個包。需要發布的jar包可以忽略這一配置

剛開始本地倉庫是空的,maven會從遠程倉庫自動下載這個jar到本地倉庫,下載完后,就可以在項目中使用這個jar了

如果將<dependency>的內容刪除,junit-3.8.1.jar也會自動消失,無法使用

 

第三部分,構建項目

[html] view plain copy
  1. <build>  
  2.     <finalName>helloworld</finalName>  
  3.     <plugins>  
  4.         <plugin>  
  5.             <groupId>org.apache.maven.plugins</groupId>  
  6.             <artifactId>maven-compiler-plugin</artifactId>  
  7.             <version>3.5.1</version>  
  8.             <configuration>  
  9.                 <source>1.7</source>  
  10.                 <target>1.7</target>  
  11.             </configuration>  
  12.         </plugin>  
  13.         <plugin>  
  14.             <groupId>org.apache.maven.plugins</groupId>  
  15.             <artifactId>maven-resources-plugin</artifactId>  
  16.             <version>3.0.1</version>  
  17.             <configuration>  
  18.                 <encoding>UTF-8</encoding>  
  19.             </configuration>  
  20.         </plugin>  
  21.     </plugins>  
  22. </build>  

build:項目構建時的配置

finalName:在瀏覽器中的訪問路徑,如果將它改成helloworld,再執行maven--update,這時運行項目的訪問路徑是

                   http://localhost:8080/helloworld/   而不是項目名的  http://localhost:8080/test

plugins:插件,之前篇章已經說過,第一個插件是用來設置java版本為1.7,第二個插件是我剛加的,用來設置編碼為utf-8

group id+artifact id+version:插件在倉庫中的坐標

configuration:設置插件的參數值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM