gpt4 book ai didi

Maven - settings.xml 中的

转载 作者:行者123 更新时间:2023-12-03 10:15:06 25 4
gpt4 key购买 nike

我使用 tomcat-maven-plugin 将我的 war 部署到服务器。我要做的是在我的 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 放在哪里呢?在服务器标记下的 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 中是否也有 URL 的位置,因此我不必使用属性?

最佳答案

首先让我说,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 profile 默认情况下,并允许您使用简单的 mvn clean package tomcat:deploy 部署到它.

要部署到其他目标,请设置一个新的 <server/>进入 settings.xml具有适当的凭据。新增 profile但请忽略 <activation/>节并将其配置为指向适当的详细信息。

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

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

关于Maven - settings.xml 中的 <server/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6549504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com