有一个 Java Gradle 项目。构建任务构建一个名为 artifact-1.0.jar 的项目 jar 文件。每次执行构建任务时,版本都需要更改。例子:
- artifact-1.0-1.jar。
- artifact-1.0-5.jar。
- artifact-1.0-20.jar。
- ...
- artifact-1.0-N.jar。
如何正确实施?
有一个 Java Gradle 项目。构建任务构建一个名为 artifact-1.0.jar 的项目 jar 文件。每次执行构建任务时,版本都需要更改。例子:
如何正确实施?
如果一切都发生在
git+下gradle(现在几乎总是这样) - 那么我这样做:1)在
build.gradle我们定义一个计算内部版本号的函数(从根开始):2)接下来,将内部版本号插入到jar生成中:
通常,添加序列号并不是最好的主意。因为 清除装配数据时,此编号将丢失。并且扫描以前的版本并不是一件容易的事。最好加上时间戳。在Groovy DSL最简单的情况下,这样做是这样的:
对于像这样的Kotlin DSL:
首先我们需要编写ant xml文件。该文件将创建一个文件,其中将保存和递增内部版本号,然后它将查看
${src}/com/yourPath/Main.java变量的源代码文件public static final String BUILD_NUMBER = ".*";并将其替换为当前内部版本号。xml 文件将如下所示:
然后在您的 IntelliJ 中按
View->Tool Windows->Ant Build。然后+导航到您的 xml 文件(请注意,您的 xml 使用的当前路径将成为 xml 文件本身的路径,而不是 inteliJ 项目的路径,因此您可能需要location="../src"根据您存储 xml 的位置来更正该部分)。然后您将看到我们的目标init,您可以选择并按下按钮play。如果它有效,您将看到BUILD_NUMBER添加到源代码Main.java中。现在有一个关于如何自动执行此操作的重要技巧:只需右键单击init并选择Execute on->Before Compilation. 一切,没有别的,完成:)这里是原文