Dan*_*aub 27 java ant ivy gradle
在gradle中发布到存储库时,有没有办法获得下一个版本?
例如,如果我的3.0.1存储库中有版本,我想要发布的版本3.0.2.
ivy有一个ant命名的任务,buildnumber它完全是这样的:
<project xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<target name="ivyBuildNumber" description="Use ivy get the next build number">
<ivy:buildnumber
resolver="url-chain"
organisation="${ivy.organisation}"
module="${ivy.module}"
revision="${version.base}"/>
<echoproperties prefix="ivy.new."/>
</target>
Run Code Online (Sandbox Code Playgroud)
有没有办法这样做gradle?如果不能如何ivy从gradle中访问任务ant?
在我的build.gradle呼唤中ant
ant.importBuild 'build.xml'
Run Code Online (Sandbox Code Playgroud)
che*_*rui 10
我不认为Gradle中有支持,但您可以尝试使用Ant任务. https://docs.gradle.org/current/userguide/ant.html#sec:import_ant_build
另一种方法是使用某种插件或自定义任务来管理版本.
小智 8
是的,您可以通过将ant的build.xml文件导入gradle的build.gradle文件,从ant脚本访问常春藤任务.以下是执行此操作的语法.
ant.importBuild'build.xml'
请参阅:https://docs.gradle.org/current/userguide/ant.html#sec:import_ant_build
我建议你使用ResearchGate发布插件 https://github.com/researchgate/gradle-release 它有一个漂亮的文档.易于阅读.另外,看看我在个人项目中如何使用它. https://github.com/vatolinrp/bitcoin-esb/blob/master/build.gradle 这将是一个很好的例子.
经过长时间的努力,我成功地做到了.
在我的build.gradle中,我添加了以下代码
ant.importBuild 'build.xml'
task getNextBuild(dependsOn : ivyBuildNumber) {
doLast{
def nextVersion = ant.properties['ivy.new.revision']
println nextVersion
}
}
Run Code Online (Sandbox Code Playgroud)
我导入了我的ant构建文件,并创建了一个调用ivy buildnumber任务的任务.
有我的build.xml
<project xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="ivyBuildNumber">
<path id="ivy.classpath" path="lib/ivy.jar" />
<typedef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.classpath" />
<ivy:buildnumber
organisation="daniel"
module="hello"/>
<echoproperties prefix="ivy.new."/>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
因为我的IDE(Intellij),ivy.jar在内容中没有,
我ivy.jar从我的根目录导入了dir(lib/ivy.jar)
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |