2011-07-01 82 views
26

我使用tomcat-maven-plugin將我的戰爭部署到服務器。我所要做的就是配置它這樣在我的pom.xml:Maven - <server/>在settings.xml中

<configuration> 
... 
    <url>http://localhost/manager</url> 
    <username>admin</username> 
    <password>admin</password> 
... 
</configuration> 

但我當然希望保持在一個不同的地方,這個設置,因爲我在我的電腦上工作,但隨後有一個分期和一個活的服務器以及服務器的設置不同。

因此,讓我們使用.m2/settings.xml

<servers> 
    <server> 
     <id>local_tomcat</id> 
     <username>admin</username> 
     <password>admin</password> 
    </server> 
</servers> 

現在改變的pom.xml:

<configuration> 
    <server>local_tomcat</server> 
</configuration> 

但是,在將服務器的網址是什麼?在服務器標籤下的settings.xml中沒有這個地方!也許這樣?

<profiles> 
    <profile> 
    <id>tomcat-config</id> 
     <properties> 
    <tomcat.url>http://localhost/manager</tomcat.url> 
     </properties> 
    </profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>tomcat-config</activeProfile> 
</activeProfiles> 

..並使用$ {tomcat.url}屬性。

但是接下來的問題是,爲什麼在settings.xml中使用服務器標籤呢?爲什麼不使用用戶名和密碼的屬性呢?或者在設置網址中還有一個URL的位置,所以我不必使用屬性?

回答

29

首先讓我說,profiles是Maven最強大的功能之一。

首先要在你的pom.xml的輪廓,看起來像這樣:

<profiles> 
    <profile> 
     <id>tomcat-localhost</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <tomcat-server>localhost</tomcat-server> 
      <tomcat-url>http://localhost:8080/manager</tomcat-url> 
     </properties> 
    </profile> 
</profiles> 

然後在你的~/.m2/settings.xml文件中添加這樣servers條目:

<servers> 
     <server> 
      <id>localhost</id> 
      <username>admin</username> 
      <password>password</password> 
     </server> 
    </servers> 

配置您的build插件這樣:

<plugin> 
    <!-- enable deploying to tomcat --> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <version>1.1</version> 
    <configuration> 
     <server>${tomcat-server}</server> 
     <url>${tomcat-url}</url> 
    </configuration> 
</plugin> 

默認情況下,這將啓用您的tomcat-localhost配置文件,並允許您使用簡單的mvn clean package tomcat:deploy進行部署。

要部署到其他目標,設立settings.xml與適當的憑據新<server/>條目。添加一個新的profile,但請忽略<activation/>節並將其配置爲指向相應的詳細信息。

然後使用它mvn clean package tomcat:deploy -P [profile id]其中[profile id]是新的配置文件。

憑證在settings.xml中設置的原因是因爲在大多數情況下,您的用戶名和密碼應該是保密的,並且沒有理由偏離設置服務器憑證的標準方式,人們不得不適應。

+0

好的,謝謝你讓這個更清晰:) –

相關問題