2012-05-13 78 views
2

所以我的Maven不希望皮卡正確的配置文件,不要緊,我是這麼講的:Maven的配置文件不使用部署糾正tomcat的Maven的Tomcat的插件

mvn -Denv=dev tomcat7:deploy-onlymvn -P dev -Denv=dev tomcat7:deploy-only

我在我的settings.xml上配置了兩臺服務器,並在下面指出了正確的配置。

使用mvn -X似乎Maven總是選擇最後一臺服務器,以便它出現在文件上,這意味着它正在拾取prod服務器。

任何線索有人嗎?謝謝!

這裏是我的<profiles>

<profiles> 
<profile> 
    <id>dev</id> 
    <activation> 
    <property> 
     <name>env</name> 
     <value>dev</value> 
    </property> 
    </activation> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.0-beta-1</version> 
     <configuration> 
      <server>dev</server> 
      <url>http://localhost:8080/manager/text</url> 
      <username>tomcat</username> 
      <password>tomcat</password> 
      <path>/</path> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 
<profile> 
    <id>prod</id> 
    <activation> 
    <property> 
     <name>env</name> 
     <value>prod</value> 
    </property> 
    <jdk>1.6</jdk> 
    </activation> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.0-beta-1</version> 
     <configuration> 
      <server>prod</server> 
      <url>http://remote/manager/text</url> 
      <username>usr</username> 
      <password>pwd</password> 
      <path>/</path> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</profile> 
</profiles> 
+0

好吧,所以我設法讓它在一些變化後工作。我將url,服務器,用戶名和密碼移動到配置文件**內的屬性**,並將'tomcat7-maven-plugin'移動到'pom.xml'上的主'',並將屬性作爲參數傳遞。但是,如果我將'-D'參數添加到'mvn'命令,我只能設置屬性。這是它應該如何? –

回答

2

您的督促輪廓<jdk>1.6</jdk>一個額外的 「激活」。激活是一個「或」,而不是「和」。我猜你正在用jdk6運行maven,所以prod總是處於活動狀態。作爲pom中的最後一個,它的設置將贏得勝利 - 這是maven的一個通用規則。

+1

你救了我的一天。謝謝! –