所以我的 Maven 不想获取正确的配置文件,无论我如何告诉它:
mvn -Denv=dev tomcat7:deploy-only
或mvn -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>
最佳答案
您有一个额外的“激活”<jdk>1.6</jdk>
在您的产品配置文件中。激活是“或”,而不是“和”。我猜你正在使用 jdk6 运行 maven,因此 prod 始终处于事件状态。作为 pom 中的最后一个,它的设置将获胜——这是 Maven 中的一般规则。
关于Maven 配置文件未使用 maven-tomcat-plugin 部署来纠正 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576011/