一、環境准備
我使用的環境是: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配置
分類:
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
繼續之前創建的test項目,一個基本項目的pom.xml文件,通常至少有三個部分
第一部分,項目坐標,信息描述等
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.company.project</groupId>
- <artifactId>module</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>test Maven Webapp</name>
- <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包
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </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也會自動消失,無法使用

第三部分,構建項目
- <build>
- <finalName>helloworld</finalName>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.0.1</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- </plugins>
- </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:設置插件的參數值
