1. 程式人生 > >在Unix系統中安裝Maven並配置Maven自動釋出java web到tomcat

在Unix系統中安裝Maven並配置Maven自動釋出java web到tomcat

前言


在Java程式開發中,包依賴管理是一件非常的無聊,瑣碎,費時費力。maven不僅可以幫助你輕鬆地管理包依賴,還可以讓你的測試,構建,部署,變得方便。你只需要在你的專案pom.xml檔案中指定你所需要依賴的軟體包,那麼Maven就會幫助你找到並下載你所須的那個軟體,以及它對應的版本。maven會幫助你維護一個區域性的程式碼庫,這樣每次你需要一個軟體包,maven就會自動去本地庫中幫你去找。如果沒有找到需要的軟體,它就幫你去全域性庫中尋找,並下載到本地。

簡介


學習如何使用Maven,我推薦一本工具書,《maven the definitive guide》。在這本工具書手中,詳細介紹了maven的使用思想,並且提供了從基本到複雜的具體專案應用。本文介紹maven在ubuntu系統下的安裝配置使用。
關於Tomcat的安裝配置方法,請參看安裝配置Nginx作為Apache和Tomcat的前端伺服器。在安裝好Maven之後,我會分別介紹如何在Maven和Tomcat端進行相應的配置,讓Maven有權利訪問Tomcat伺服器,並部署Web應用。最後,我會展示如何在pom中配置tomcat maven plugin. 這個配置是通用的,你可以複製貼上在任何你需要部署的專案中。

安裝Maven


使用以下命令下載maven. 
  1. wget http://www.gtlib.gatech.edu/pub/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz  
解壓,重新命名,放到一個你喜歡的地方。
  1. tar xvzf apache-maven-3.0.5-bin.tar.gz  
  2. sudo mv apache-maven-3.0.5 /opt/maven3  
  3. sudo chown -R root:root /opt/maven3  
使用下面的命令讓你的系統知道它
  1. sudo ln -s /opt/maven3/bin/mvn /usr/bin/mvn  
之後,在/etc/environment或者你~/.bashrc檔案中加入MAVEN_HOME變數。這裡把它放在/etc/enviroment檔案中,新增MAVEN_HOME="/opt/maven3",使用下面的命令讓MAVEN_HOME變數生效,並驗證maven是否安裝成功。
  1. source /etc/enviroment  
  2. echo $MAVEN_HOME  
  3. mvn -version  
如果終端正常顯示了maven的安裝版本資訊,那就說明你已經安裝成功。

配置


maven其實是通過tomcat的一個介面來部署專案到tomcat伺服器的,所以你需要先在tomcat中建立一個role和使用者。這個role必須是manager-script,然後所建立的使用者也需要加入這個role. 所以編輯/opt/tomcat7/conf/tomcat-users.xml檔案,加入以下的配置資訊。
  1. <tomcat-users>  
  2.         <role name="manager-script"/>  
  3.         <user username="user" password="passwd" roles="manager-script"/>  
  4. </tomcat-users>  
之後你需要把你所輸入的使用者名稱和密碼新增到maven的/opt/maven3/conf/settings.xml配置檔案中,這樣,maven就可以用這個身份來跟tomcat伺服器進行溝通。使用下面的方法來配置這個檔案。
  1. <server>  
  2.             <id>local_server</id>  
  3.             <username>user</username>  
  4.             <password>passwd</password>  
  5. </server>  
最後,你只要在你想要部署的專案pom.xml檔案中加入下面的通用配置,你就可以用maven進行自動部署了。
  1. <plugins>  
  2.         <plugin>  
  3.                 <groupId>org.apache.tomcat.maven</groupId>  
  4.                 <artifactId>tomcat6-maven-plugin</artifactId>  
  5.                 <version>2.1</version>  
  6.         </plugin>  
  7.         <plugin>  
  8.                 <groupId>org.apache.tomcat.maven</groupId>  
  9.                 <artifactId>tomcat7-maven-plugin</artifactId>  
  10.                 <version>2.1</version>  
  11.                 <configuration>  
  12.                             <server>local_server</server>  
  13.                             <url>http://localhost:8081/manager/text</url>  
  14.                             <path>/${project.build.finalName}</path>  
  15.                 </configuration>  
  16.         </plugin>  
  17. </plugins>  

配置自動部署

在pom檔案中加上如下配置,即可通過命令mvn tomcat7:deploy -Dmaven.test.skip=true自動將web專案部署到伺服器。在啟動前需保證tomcat處於啟動狀態。如果通過eclipse啟動,則不需要mvn開頭,否則會報錯。

  1. <build>
  2.  <plugins>
  3.       <plugin>
  4.       <groupId>org.apache.tomcat.maven</groupId>
  5.             <artifactId>tomcat7-maven-plugin</artifactId>
  6.            <version>2.2</version>
  7.            <configuration>
  8.                 <goal>compile,install, deploy, site, post-site, site-deploy</goal>
  9.                  <url>http://127.0.0.1:8080/manager/html</url>
  10.                  <server>tomcat</server>
  11.                  <username>admin</username>
  12.                  <password>12345</password>
  13.                  <update>true</update>
  14.                 </configuration>
  15.                 </plugin>
  16.  </plugins>
  17. </build>
  

如果編譯過程中出現:web.xml which will be ignored提示資訊,則可通過新增如下配置解決:

  1. <plugin>
  2.     <groupId>org.apache.maven.plugins</groupId>
  3.     <artifactId>maven-war-plugin</artifactId>
  4.     <version>2.1.1</version>
  5.     <configuration>
  6.       <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
  7.     </configuration>
  8.   </plugin>

使用


完成以上的安裝配置後,你就可以享受maven的便捷了。只要在終端敲入以下程式碼,maven就會幫助你完成所有的打包部署工作。
  1. mvn clean package tomcat7:deploy