27

我使用 tomcat-maven-plugin 将我的战争部署到服务器。我要做的是在我的 pom.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>

但是将服务器的 URL 放在哪里呢?在 server 标签下的 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} 属性。

但是问题是,为什么要使用 server 标签settings.xml呢?为什么不使用用户名和密码的属性呢?还是在设置 URL 中也有 URL 的位置,所以我不必使用属性?

4

2 回答 2

32

首先让我说,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.

要部署到其他目标,请使用适当的凭据设置新<server/>条目。settings.xml添加一个新的profile但不包含该<activation/>节并将其配置为指向适当的详细信息。

然后在新配置文件mvn clean package tomcat:deploy -P [profile id]的位置使用它。[profile id]

在 中设置凭据的原因settings.xml是因为您的用户名和密码在大多数情况下应该是保密的,并且没有理由偏离人们必须适应的设置服务器凭据的标准方式。

于 2011-07-01T20:41:20.160 回答
4

设置.xml

<settings>
  <servers>
    <server>
        <id>company.jfrog.io</id>
        <username>user-name</username>
        <password>user-password</password>
    </server>   
  </servers>
</settings>

pom.xml

<repositories>
    <repository>
        <id>company.jfrog.io</id>
        <url>https://company.jfrog.io/company/release</url>
    </repository>
</repositories>

放到settings.xml_

c:/Users/user-name/.m2/settings.xml(对于 Windows),

~/.m2/settings.xml(对于 Linux)。

company.jfrog.iosettings.xml可以是任何标识符,但在and中应该相同pom.xml

这适用于 Maven 3。

于 2019-04-15T16:51:59.350 回答