如何在命令行中指定tomcat7-maven-plugin使用的服务器信息?

时间:2017-09-12 12:18:59

标签: maven tomcat deployment

我正在使用tomcat7-maven-plugin将我的应用程序部署到Tomcat。在我的pom.xml中,我目前有以下信息

 <plugin>
   <groupId>org.apache.tomcat.maven</groupId>
   <artifactId>tomcat7-maven-plugin</artifactId>
   <version>2.2</version>
   <configuration>
      <server>test</server>
      <path>/api</path>
      <update>true</update>
      <url>http://XXX.XXX.XX.XX:8080/manager/text</url>
   </configuration>
 </plugin>

在〜/ .m2 / settings.xml中我有以下

<settings>
  <servers>
    <server>
      <id>test</id>
      <username>*******</username>
      <password>*******</password>
    </server>

    <server>
      <id>production</id>
      <username>*********</username>
      <password>*********</password>
    </server>
  </servers>
</settings>

我希望能够通过ID作为命令行的一部分来选择服务器,例如

mvn tomcat7:redeploy -Dserver=production

并使用settings.xml文件中的相应配置信息。除了为部署选择特定的用户名和密码之外,这还意味着将URL从pom.xml移到一个单独的位置。

This post谈到将服务器URL存储在POM之外,并且似乎表明有一种方法可以使用某些属性文件来完成这一部分,但是并没有扩展这些文件的位置找到它们,也不知道如何在命令行中指定它们。

有可能做我正在寻找的事情吗?或者,每次我想选择要部署到的其他服务器时,我是否都在编辑pom.xml文件?

1 个答案:

答案 0 :(得分:0)

~/.m2/settings.xml中保留服务器ID(和凭据)的另一种方法是让服务器url成为pom.xml中的参数:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
     <artifactId>tomcat7-maven-plugin</artifactId>
     <version>2.2</version>
     <configuration>
         <url>${deploy.server}</url>             
     </configuration>
<plugin>

然后,当您运行部署目标时,指定要使用的服务器的URL:

mvn tomcat7:deploy -Ddeploy.server="http://prod.example.com:8080/manager/text" -Dtomcat.username=sfalken -Dtomcat.password=JOSHUA