gpt4 book ai didi

maven-2 - 如何获取 settings.xml 中定义的服务器值以在我的 pom.xml 中使用它们?

转载 作者:行者123 更新时间:2023-12-04 10:02:29 25 4
gpt4 key购买 nike

我知道我可以使用属性检索一些 settings.xml 参数,例如 ${settings.localRepository}获取本地存储库的位置。

现在想象我的 settings.xml 包含以下服务器定义:

<servers>
<server>
<id>server-dev</id>
<username>devuser</username>
<password>devpass</password>
</server>
<server>
<id>server-hom</id>
<username>homuser</username>
<password>hompass</password>
</server>
</servers>

有没有办法,给定 id一个服务器来获取任何参数的值?例如,类似 ${settings.servers.server.server-dev.username}会返回 devuser .

我已经尝试过以下方法:
${settings.servers.server.server-dev.username}
${settings.servers.server-dev.username}
${settings.servers.server[server-dev].username}
${settings.servers[server-dev].username}

但他们都没有工作......

关于这个 page , 这不可能。但是,由于它是一个没有正确记录的功能,我仍然希望以这种方式做到这一点......

最佳答案

我认为这是不可能的,并且认为公开这些属性的值(value)是一个坏主意。

Settings Reference 中所述,点有<servers>settings.xml是不分发诸如 username 之类的值或 password随着pom.xml .因此,公开属性以从任何地方读取它们只会破坏这一原则,并且可能是一个安全问题。

编辑:我再次思考这个问题,我说的不是真的。

AFAIK,Maven 不会暴露 usernamepassword设置中定义的服务器的属性和/或提供类似于 OP 描述的机制。 但是能够从 pom.xml 访问它们并没有错.

话虽如此,正如 Rich 指出的那样,Maven API 使您可以访问设置中定义的服务器(请参阅 org.apache.maven.settings.Settings#getServer(String serverId) ),因此必须可以从 Mojo(即在自定义插件中)设置属性。

但我实际上不确定你到底想做什么,也许使用 <properties>和配置文件将是一个更好的方法。处理常见的环境属性(但特定值)是配置文件的一个很好的用例。查看章节11.5.1. Common Environments11.5.2 Protecting Secrets Maven:权威指南书。

关于maven-2 - 如何获取 settings.xml 中定义的服务器值以在我的 pom.xml 中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559179/

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