gpt4 book ai didi

java - 修改 Maven Mojo 中的 Artifact 版本

转载 作者:行者123 更新时间:2023-11-30 04:05:28 25 4
gpt4 key购买 nike

刚刚开始接触 Maven 并构建自定义 Mojos。希望有人能在这里提供帮助。

总体思路是我想修改POM中的版本而不修改POM本身。我将使用此功能将限定符添加到部署版本的末尾。例如,我可能会将 1.0 更改为 1.0-SNAPSHOT1.0-RELEASE1.0.123 (基于最新的增量版本),或 1.0-a1b2c3d (基于 Git 提交哈希)。这里的目标是开发人员不必担心更改版本号(当它不重要时),而是由构建来处理。

因此,我尝试在 initialize 阶段更新版本号,但它并没有出现在我期望的所有位置。这是我的魔力:

package com.tomkel.maven;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;

/**
* This goal overrides the current artifact version
*
* @goal overrideVersion
*
* @phase initialize
*/
public class VersionOverrideGoal
extends AbstractMojo
{
/**
* @parameter default-value="${project}"
*/
private MavenProject mavenProject;

/**
* Run the Mojo
* @throws org.apache.maven.plugin.MojoExecutionException
*/
public void execute()
throws MojoExecutionException
{
this.mavenProject.setVersion("TRY_THIS");
this.mavenProject.getArtifact().setVersion("TRY_THIS_TOO");
}

}

但是当我将其包含在我的项目的 POM 中时:

<plugin>
<groupId>com.tomkel</groupId>
<artifactId>tk-version-override-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>overrideVersion</goal>
</goals>
</execution>
</executions>
</plugin>

然后我在项目构建的 install 阶段看到类似这样的内容:

[INFO] Building jar: /home/tkelley/git/tomkel/some-project/target/some-project-1.2.3.jar
[INFO]
[INFO] --- maven-install-plugin:2.3:install (default-install) @ some-project ---
[INFO] Installing /home/tkelley/git/tomkel/some-project/target/some-project-1.2.3.jar to /home/tkelley/.m2/repository/com/tomkel/some-project/TRY_THIS_TOO/some-project-TRY_THIS_TOO.jar
[INFO] Installing /home/tkelley/git/tomkel/some-project/pom.xml to /home/tkelley/.m2/repository/com/tomkel/some-project/TRY_THIS_TOO/some-project-TRY_THIS_TOO.pom

由于该 Artifact 构建为 some-project-1.2.3.jar,我的存储库 (nexus) 将其添加为版本 1.2.3。但这不是我想要的 - 我希望将其添加为 TRY_THIS_TOO

我在这里做错了什么吗?

如果有帮助,我已将 Mojo 代码、POM 和构建日志放入此处的 Gist 中:https://gist.github.com/tomkel5/8199801

提前致谢!

最佳答案

听起来您想使用 Versions Maven Plugin管理您的版本控制。

关于java - 修改 Maven Mojo 中的 Artifact 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861324/

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