我时常有叉使用Maven的(通常在github)的Java项目。
当我用叉子叉项目,让我改变我一般要削减释放我自己的私人(但在互联网上)Maven仓库。
的版本标签应该是什么我的自定义发布这样的问题。 我不能这样做SNAPSHOT
,因为我需要它释放。 有时我后缀与项目.ADAMGENT
(因为我是一个自恋者)。 可以说,我叉1.0.4-SNAPSHOT
。 我可以将其更改为1.0.4.ADAMGENT
。 我不知道如果这是一个好主意。 在某些情况下,我甚至无法后缀它.ADAMGENT
作为春天的摇篮构建工具不喜欢这样。 因此,对于春天的项目我做的.ADAMGENT.RELEASE
或.ADAMGENT.M1
如果一个里程碑。
其他人做?
更新: 虽然我说我叉彪更多的是补丁级别的变化。 在另一方面富饶(由不同的用户)可能是叉和/或补丁
我通常会添加一个后缀(如名称),然后运行数量,避免我做基于上游版本混乱多个版本。 在你的设置,这可能会转换为这样的事情:
1.0.4-ADAMGENT-1
这将随后跟着1.0.4-ADAMGENT-2
的情况下,你必须做出的另一个变化。
绝对保持artifact
和group
从原来的项目,还你立足于更改版本ID,这会派上用场后,如果你要找出你已经工作在哪个版本。 它使切换到正式版本更容易,如果你的变化是上游包括在内。
因为你分叉,使用不同的组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>
....
它不是任何更难以切换一组ID为一个依赖比来切换版本ID。 这两种机制可以用来轻松地得到你想要释放神器。 然而,通过改变组ID,你得到的好处如下:
- 您可以更轻松地跟踪的Nexus内的叉
- 您消除文物有可能出现从组织,他们没有产生任何混淆
- 你留在内部标准的指导方针 Maven的版本标识符
如果它是一个快照,我建议使用原来的版本号(是可能的混帐?)或者你约会叉它,用你的ADAMGENT(添加自己的后缀是一个非常好的主意)
如
1.0.4-2011-09-12.ADAMGENT
我也拿出自己的解决方案。 我不会将其标记正确的,因为我觉得@DavidH确实有一些有效的点,如果Maven的有配置的水平常春藤有替换的groupid(和/或我Sonatype的如何做到这一点想通了),我可能将标志着它正确。 否则,我坚信叉子应该是不同的命名空间和Java包名应该有点内嵌您的项目组识别符号。 也为我的情况,我经常需要为一个bug修复所以它不是一个叉做到这一点。
这是我做的,它是基于Maven的是如何读取版本号,什么Sonatype的有些作用:
首先,我建立我自己公开,但非中央储存库,我将公布我的版本之中。 您可以使用github上和/或googlecode上举办这样一个回购协议。 有在网上指南上如何做到这一点,以及如何发布到它,所以我不会去成。
对于版本号我按照这个格式除了春春因的构建系统具有在我的问题指出奇怪的要求:
1.0.4-ADAMGENT-1
一些更多的变化和释放:
1.0.4-ADAMGENT-2
你可以看到Maven将主要由了解这种格式查看代码 。 问题是ADAMGENT
预选赛。 Maven的只有了解几个修饰词“阿尔法”, “试用”, “里程碑”, “RC”, “快照”, “”, “SP”'和“GA”, “最后”, “CR”正确。
的那些不被责令词汇( ADAMGENT
在这种情况下),这是很好的,我想你可以了增量版本( 4
)如果这是一个问题。