Java 如何在maven中将属性动态注入settings.xml
我正在尝试完全自动化一个构建,最重要的是,在travis ci中使用maven发布。我尝试这样做的方式是提供用户名和密码命令行作为属性,并在Java 如何在maven中将属性动态注入settings.xml,java,maven,travis-ci,Java,Maven,Travis Ci,我正在尝试完全自动化一个构建,最重要的是,在travis ci中使用maven发布。我尝试这样做的方式是提供用户名和密码命令行作为属性,并在settings.xml文件中替换它们。然后,在运行构建时,我将settings.xml的位置覆盖为我签入的文件。构建和发布所需的一切都需要检查到回购协议中。不过,看起来maven并没有进行属性替换 例如: settings.xml <?xml version='1.0' encoding='UTF-8'?> <settings xsi:s
settings.xml
文件中替换它们。然后,在运行构建时,我将settings.xml
的位置覆盖为我签入的文件。构建和发布所需的一切都需要检查到回购协议中。不过,看起来maven并没有进行属性替换
例如:
settings.xml
<?xml version='1.0' encoding='UTF-8'?>
<settings xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd'
xmlns='http://maven.apache.org/SETTINGS/1.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>${SONATYPE_USERNAME}</username>
<password>${SONATYPE_PASSWORD}</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>${SONATYPE_USERNAME}</username>
<password>${SONATYPE_PASSWORD}</password>
</server>
</servers>
</settings>
sonatype nexus快照
${SONATYPE_USERNAME}
${SONATYPE_密码}
索纳型连接分期
${SONATYPE_USERNAME}
${SONATYPE_密码}
生成命令:
mvn-settings$PWD/settings.xml-e-X-B发布:准备发布:执行“-DSONATYPE_USERNAME=YYIaF/A4”“-DSONATYPE_PASSWORD=kowLPBgK+/kRiC+O96YZT1ibvxrdcKc”-Dgpg.passphrase=passphrase
这些不是真实的证书,但我包括了一个事实,他们有一些时髦的角色,以防万一
错误:
[ERROR]未能在project foo父项上执行目标org.apache.maven.plugins:maven部署插件:2.8.2:deploy(默认部署):未能部署工件:无法将工件com.baz:foo父项:pom:3.0.3从sonatype nexus转移/转移到sonatype nexus转移(https://oss.sonatype.org/service/local/staging/deploy/maven2/):无法传输文件:https://oss.sonatype.org/service/local/staging/deploy/maven2/com/baz/foo-parent/3.0.3/foo-3.0.3.pom. 返回代码为:401,原因短语:未经授权。->[帮助1]
但是如果我用官方的方式(.m2/settings.xml)来做这件事,一切都很好
由于目标是完全自动化travis ci的发布,如果有直接的方法,我洗耳恭听