簡體   English   中英

如何在Gradle中發布以編程方式操作(例如,儀器化的)罐子?

[英]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"
    }
  }
}

CrazyJar項目

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
    }
  }
}

CoolApp項目

dependencies {
  compile group: "coolproject", name: "crazyjar", version: project("CrazyJar").version
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM