Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在maven中将属性动态注入settings.xml_Java_Maven_Travis Ci - Fatal编程技术网

Java 如何在maven中将属性动态注入settings.xml

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

我正在尝试完全自动化一个构建,最重要的是,在travis ci中使用maven发布。我尝试这样做的方式是提供用户名和密码命令行作为属性,并在
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的发布,如果有直接的方法,我洗耳恭听