[英]How to publish programmatically manipulated (e.g. instrumented) jars in Gradle?
我有一個多項目構建。 子項目CoolApp依賴於子項目CrazyJar。 Project CrazyJar沒有資料來源:它使用一種工具對從非Gradle項目BigProject派生的現有jar執行字節代碼操作,並希望發布由此獲得的CoolApp依賴的操作jar。 它需要將其發布為本地Maven軟件包。
由於似乎“ maven發布”插件僅支持“ java”和“ web”項目,因此我將“ java”插件應用於CrazyJar。 但是CrazyJar沒有消息來源! 我最終發布了一個空的工件。 有什么辦法可以使它像正常的Java項目一樣工作? 如果沒有,我還能做什么?
嗯,是的,我有點誤解了我的問題。 好吧,這還是我的解決方案(主要基於“ maven-publish”插件的文檔):
subprojects {
repositories {
maven {
url "${rootDir}/repo"
}
}
}
apply plugin: "maven-publish"
...
task createCrazyJar(type: Exec) {
...
}
publish {
dependsOn "createCrazyJar"
}
publishing {
publications {
mavenJava(MavenPublication) {
artifact createCrazyJar.outputs.getFiles().getSingleFile()
}
}
repositories {
maven {
url project.repositories.maven.url
}
}
}
dependencies {
compile group: "coolproject", name: "crazyjar", version: project("CrazyJar").version
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.