gpt4 book ai didi

java - 将参数传递给 Maven 发布版本

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:14 25 4
gpt4 key购买 nike

我正在尝试使用 Maven 发布一个库并执行到 sourceforge 的站点部署(我首先创建了一个交互式 shell)。发布由 Jenkins 作业完成(使用 Jenkins 的 Maven 发布插件)。

我试过:

-X -e -Dresume=false -Dusername=puce release:prepare release:perform -Darguments="-Dusername=puce"

-X -e -Dresume=false -Dusername=puce -Darguments=-Dusername=puce release:prepare release:perform

但两次作业都卡在 site:deploy 第一个模块:

 [INFO] --- maven-site-plugin:3.2:deploy (default-deploy) @ myproject-parent ---
[INFO] Parent project loaded from repository: myGroupId:myOtherproject-parent:pom:1.0
[INFO] Parent project loaded from repository: myGroupId:myOtherproject-parent:pom:1.0
Using private key: /opt/jenkins/.ssh/id_dsa

当我停止作业时,最后会打印以下内容:

Password for ${username}@shell.sourceforge.net: channel stopped

这可能意味着 ${username} 没有解析。

如何解析 ${username}?

编辑:

请注意以下运行正常:

site-deploy -Psonatype-oss-release -Dusername=puce

编辑 2:作为发布的一部分:执行 maven 执行以下命令:

/usr/share/maven/bin/mvn -s /tmp/release-settings7797889802430474959.xml deploy site-deploy --no-plugin-updates --batch-mode -Psonatype-oss-release -P nexus -f pom.xml

-Dusername=puce 似乎没有传递给这个 maven 命令...

另请注意,help:effective-pom 显示了以下 maven-release-plugin 配置:

<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<mavenExecutorId>forked-path</mavenExecutorId>
<useReleaseProfile>false</useReleaseProfile>
<arguments>-Psonatype-oss-release</arguments>
</configuration>
</plugin>

所以 'arguments' 被定义并且它的值似乎到达嵌入式 maven 命令而不是命令行传递的值......

最佳答案

我过去成功完成的事情如下:

  • 在 POM 文件中定义一个属性,例如:

    <properties>
    <release.arguments></release.arguments>
    </properties>
  • 将 POM 属性添加到 POM 文件中的插件配置中,例如;

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
    <arguments>${release.arguments}</arguments>
    ...
  • 通过命令行上的属性传递参数,例如:

    mvn release:prepare -Drelease.arguments="-N -Prelease"

希望这对您有所帮助。

关于java - 将参数传递给 Maven 发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005437/

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