如何动态地将属性注入到maven的settings.xml中

我正在试图完全自动化一个构建,最重要的是,在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>

构建命令:

mvn --settings $PWD/settings.xml -e -X -B release:prepare release:perform "-DSONATYPE_USERNAME=YYIaF/A4" "-DSONATYPE_PASSWORD=kowLPBgK+/kRiC+O96YZT1ibvxrdcKc" -Dgpg.passphrase=passphrase

这些不是真正的凭据,但我包括了一些事实,他们有一些时髦的人物事件。

错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project foo-parent: Failed to deploy artifacts: Could not transfer artifact com.baz:foo-parent:pom:3.0.3 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Failed to transfer file: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/baz/foo-parent/3.0.3/foo-3.0.3.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

但如果我这样做的官方方式(.m2 / settings.xml) - 一切都很好。

由于目标是要完全自动化Travis-ci的发布,如果只有一种直接的方式来做到这一点,我就会全神贯注。

链接地址: http://www.djcxy.com/p/62953.html

上一篇: How to dynamically inject properties into settings.xml in maven

下一篇: jdbc properties in Spring 3 using maven