使用自定义版本字符串构建 Solr

Build Solr with custom version string

我修改了Solr 4.10.4的补丁,可以正常使用,可以成功编译打包。我现在想自定义版本以表明它不是香草 Solr。

我查看了 ant 构建配置,但未能找到实际使用的版本设置。 solr-4.10.4/build.xml 有:

<property name="version" value="4.10.1-SNAPSHOT"/> 

但是,Solr 被编译为 4.10.4-SNAPSHOT,所以这不是实际使用的版本。 solr-4.10.4/solr/build.xml.

没有什么突出的地方

使用 ant 构建时如何自定义 Solr 的版本字符串?

版本字符串在 Lucene 的 solr-4.10.4/lucene/common-build.xml 中指定。在其中你会发现四个版本字符串:

<!-- The base version of the next release (including bugfix number, e.g., x.y.z+): -->
<property name="version.base" value="4.10.4"/>

...

<!--TODO: remove once Jenkins jobs are updated:--><property name="dev.version.suffix" value="SNAPSHOT"/>

<!-- Suffix of the version, by default SNAPSHOT: -->
<property name="version.suffix" value="${dev.version.suffix}"/>
<property name="version" value="${version.base}-${version.suffix}"/>

version.baseversion 属性应该单独保留,因为您很可能想更改 version.suffix 表示已修补或修改的版本。尽管 version.suffix 使用 dev.version.suffix,它被标记为要删除,因此更改 version.suffix 直接.

要指示 Solr 已修改,您可以使用 <your-name>1 for version.suffix 来指示这是您修改后的版本的第一次修订。例如,

<property name="version.suffix" value="cpburnz1"/>

这会将生成的版本更改为 4.10.4-cpburnz1 而不是 4.10.4-SNAPSHOT

或者,您可以在 ant 的命令行中使用 -D 指定 version.suffix争论。如果这样做,它必须与所有命令一起使用。例如,

ant -Dversion.suffix=cpburnz1 compile
cd solr/ && ant -Dversion.suffix=cpburnz1 package