我经常需要分叉一个使用Maven的Java项目(通常在github上).
当我分叉项目并进行更改时,我通常希望将一个版本剪切到我自己的私有(但在互联网上)maven存储库.
因此,我的自定义版本应该是什么版本标签的问题.我不能这样做,SNAPSHOT因为我需要它才能成为一个版本.有时我用项目后缀.ADAMGENT(因为我是一个自恋者).让我说我叉1.0.4-SNAPSHOT.我可以改成它1.0.4.ADAMGENT.我不知道这是不是一个好主意.在某些情况下,我甚至不能使用.ADAMGENTSpring的Gradle构建工具不喜欢它.所以对于我做的Spring项目.ADAMGENT.RELEASE或者.ADAMGENT.M1它是一个里程碑.
其他人做什么?
更新: 虽然我说fork我更多的补丁程度更改.另一方面,赏金(由不同的用户)可能是用于分叉和/或补丁
HDa*_*ave 20
因为您要分叉,请使用不同的组ID.
实际情况是,一旦你开始对你的本地分支进行更改,它就是一个不同的工件.由您的组织制作的工件,而不是您从中获取的工件.
关于版本号,如果你的更改总是很小的,我在分叉时会使用源树的主要版本号和可能的次版本号,否则,我将在1.0.0再次重新开始在项目POM中记下我从哪个版本分叉它.
例如:
<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>
....
Run Code Online (Sandbox Code Playgroud)
切换依赖项的组ID比切换版本ID要困难得多.这两种机制都可以用来轻松获得所需的发布工件.但是,通过更改组ID,您可以获得以下优势:
我通常添加一个后缀(例如名称),然后添加一个正在运行的数字,以避免混淆我根据上游版本制作的多个版本.在您的设置中,这可能会转换为以下内容:
1.0.4-ADAMGENT-1
Run Code Online (Sandbox Code Playgroud)
1.0.4-ADAMGENT-2如果你不得不做出另一个改变,那么接下来会跟着.
绝对保留原始项目的ID artifact和groupID,以及您基于更改的版本,如果您必须找出您正在处理的版本,这将在以后派上用场.如果您的更改包含在上游,则可以更轻松地切换到正式版.
| 归档时间: |
|
| 查看次数: |
1671 次 |
| 最近记录: |