我经常不得不 fork 一个使用 Maven 的 Java 项目(通常在 github 上)。
当我 fork 项目并进行更改时,我通常希望将发布版剪切到我自己的私有(private)(但在 Internet 上)maven 存储库。
因此,我的自定义版本应该是什么版本标签的问题。我做不到SNAPSHOT
因为我需要它来发布。有时我会在项目后缀 .ADAMGENT
(因为我是个自恋者)。假设我 fork 1.0.4-SNAPSHOT
.我可能会将其更改为 1.0.4.ADAMGENT
.我不知道这是否是个好主意。在某些情况下,我什至不能用 .ADAMGENT
作为后缀。因为 Spring 的 Gradle 构建工具不喜欢这样。所以对于 Spring 项目,我会做 .ADAMGENT.RELEASE
或 .ADAMGENT.M1
如果它是一个里程碑。
别人做什么?
更新:虽然我说的是 fork ,但我提到了更多补丁级别的更改。另一方面,赏金(由不同的用户)可能是 fork 和/或 patch
最佳答案
因为您正在 fork ,所以请使用不同的组 ID。
现实情况是,一旦您开始对本地 fork 进行更改,它就是一个不同的 Artifact 。由您的组织制作的 Artifact ,而不是您从中获取的 Artifact 。
关于版本号,如果您的更改始终是次要的,我会在 fork 时使用源树的主要版本号和可能的次要版本号,否则,我会从 1.0.0 重新开始,在项目 POM 中记下我从哪个版本 fork 它。
例如:
<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>
<groupId>org.adamgent</groupId>
<artifactId>project-xyz</artifactId> <!-- same artifact ID -->
<version>1.0.0-RELEASE</version>
<name>My Project XYZ</name> <!-- different display name -->
<description>My fork of project XYZ created from v5.42.0 of original sources.</description>
....
切换依赖项的组 ID 并不比切换版本 ID 更难。这两种机制都可以用来轻松获得所需的发布 Artifact 。但是,通过更改组 ID,您可以获得以下优势:
关于maven - 用于 fork 的 Maven 项目的版本标签是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415550/