作爲從螞蟻遷移到gradle的短期選項,我們希望僅在我們的ant的開始和結束處使用gradle建立而不是從Gradle內運行螞蟻。Gradle with maven-publish:如何自動轉換並將目錄中的非gradle jar發佈到Artifactory
基本上我們希望使用gradle來獲取目錄的依賴關係,然後運行ant build,將所有指定的jar放在一個目錄中,然後使用gradle將artifacts從該目錄發佈到Artifactory。
這意味着gradle這個實際上不會建立文物 - 這反而發現他們在一個目錄,但我們仍希望他們版本(因爲他們會去artifactory的)
所以我們正在尋找使用Gradle動態版本併發布目錄中的所有文件。
回顧gradle文檔,看起來Gradle和artifactory-publish插件專注於更多靜態定義'要發佈什麼模塊'。我很難讓Gradle正確地從一個目錄發佈一個動態的文件數。
我試過以下(濃縮版),但它在目前爲止在我的測試中不起作用(因爲MavenPublication名似乎需要靜態文本) - 而artifactory-publish位目前沒有循環播放適當的設置MavenPublications的:
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'artifactory-publish'
version = new Version(1, 0, System.env.BUILD_NUMBER) // set by Jenkins
ext.filesToPublish=['foo.jar', 'bar.ear']
publishing {
publications {
def i=0;
for (s in filesToPublish) {
++i
def vname="artifact" + i;
$vname(MavenPublication) {
artifact s
artifactId vname
}
}
}
}
artifactory {
contextUrl = 'http://.../artifactory'
publish {
repository {
repoKey='...'
username='...'
password='...'
}
defaults {
publications('artifact0')
publications('artifact1')
publications('artifact2')
}
}
resolve {
repository {
repoKey='...'
}
}
}
我很感興趣,如果有人想出一個辦法來動態地發佈所有文件中找到的目錄artifactory的。
有沒有更好的方法,比如定義像Java插件這樣的組件的方法?
我也試着動態創建MavenPublication對象,但無法得到那個工作。這會是一個更好的方法嗎?
謝謝!
您可能只想查看以太網ant任務來解決依賴關係,並將構建中的工件部署到回購站。這將使事情變得更簡單。 https://github.com/eclipse/aether-ant –
謝謝你,Manfred。我會看看。 – user3817454