gpt4 book ai didi

java - Maven 发布插件 : create tag withhout SNAPSHOT depencencies

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:37 26 4
gpt4 key购买 nike

我正在使用 Maven 发布插件,我正在尝试发布。当我在 master 上(我正在使用 Git)时,我的项目(多模块)和依赖项(也是多模块)都有 SNAPSHOT 版本。

假设我想在不使用 SNAPSHOT 的情况下从 master 创建一个标签(跳过分支的创建)。

这是我简化的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>results</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Results parent module</name>

<modules>
<module>results-web</module>
<module>results-persistence</module>
<module>results-domain</module>
<module>results-logic</module>
<module>results-logic-api</module>
<module>results-ear</module>
<module>results-configuration</module>
<module>results-rules-ejb</module>
<module>results-rules</module>
<module>results-rest</module>
</modules>

<properties>
<dependency1.version>1.2.3-SNAPSHOT</main.version>
<dependency2.version>3.4.5-SNAPSHOT</main.version>
</properties>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<tagNameFormat>@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
<localCheckout>true</localCheckout>
<pushChanges>false</pushChanges>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency1-domain</artifactId>
<version>${dependency1.version}</version>
</dependency>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency1-enumerations</artifactId>
<version>${dependency1.version}</version>
</dependency>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency1-logic</artifactId>
<version>${dependency1.version}</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency2-domain</artifactId>
<version>${dependency2.version}</version>
</dependency>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency2-enumerations</artifactId>
<version>${dependency2.version}</version>
</dependency>
<dependency>
<groupId>org.my.project</groupId>
<artifactId>dependency2-logic</artifactId>
<version>${dependency2.version}</version>
<type>ejb</type>
</dependency>
</dependencies>
</dependencyManagement>

如果我这样做:

mvn release:prepare -Darguments="-dependency1.version=1.2.3.0 -Ddependency2.version=3.4.5.0"

这将创建一个仍然具有 SNAPSHOT 依赖项的分支:

<properties>
<dependency1.version>1.2.3-SNAPSHOT</main.version>
<dependency2.version>3.4.5-SNAPSHOT</main.version>
</properties>

我将如何在上面的部分生成标签:

<properties>
<dependency1.version>1.2.3.0</main.version>
<dependency2.version>3.4.5.0</main.version>
</properties>

最佳答案

发布插件无法更改 POM 中不属于 react 器的依赖项版本。

试试 Maven Versions Plugin .您可以使用 versions:use-releases用相应的版本替换所有快照依赖项。如果您想手动替换它们(可能是因为版本与快照不同),您可以使用 versions:set。但是两者都不适用于属性中提供的依赖版本。对于属性 versions:update-properties与设置 allowSnapshots=false 一起使用。如果不需要特殊版本范围,此目标会自动运行,但它也可以配置为处理此类要求。

您可以使用 preparaionGoals 配置发布插件来调用您的版本插件正如斯蒂芬所说:<preparationGoals>clean versions:use-releases verify</preparationGoals>

或者您在发布前手动调用版本插件,例如与

mvn versions:use-releases scm:checkin -Dmessage="Release versions of dependencies"

关于java - Maven 发布插件 : create tag withhout SNAPSHOT depencencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961812/

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