在Stackoverflow上已经有关于如何使用Gradle将预构建的Jar发布到Maven的问题。然而,本文稍有不同:我如何将预构建的Jar发布到Maven仓库,并同时提供用于包含在pom.xml文件中的依赖项?
我有一个在此脚本之外进行预构建的Jar。我需要将该Jar发布到我们的Maven仓库(Nexus)并在pom.xml中指定依赖项。我已经能够使用artifacts闭包将预构建的jar发布到Maven仓库,但它忽略了dependencies闭包。如果我添加java插件,则Maven插件会创建带有依赖项的pom文件,但会上传一个大小为零字节的jar文件。我猜这是因为Java插件期望在src目录中编译和打包源代码,但该项目中不存在该目录。
是否有一种方法可以“注入”预构建的Jar到Java插件进程中,以便我可以将该jar与依赖项一起上传?或者我还缺少其他明显的东西吗?
当然,最好的办法是预构建的Jar的构建过程概述其依赖项并上传到Maven,但不幸的是它是第三方软件,我们无法控制。
以下脚本发布一个0KB的jar文件...apply plugin: 'java'
apply plugin: 'maven'
jar = file(projectHome + '/build/lib').listFiles()[0]
configurations {
archives
runtime
}
dependencies {
runtime 'org.apache.tika:tika-app:1.3'
}
artifacts {
archives jar
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://build.com/nexus/content/repositories/releases/")
pom.version = tag
pom.artifactId = "artifact"
pom.groupId = "group"
}
}
}
许多感谢!Rob
mavenDeployer
POM DSL 来添加依赖项(请参阅用户指南)。 - Peter Niederwieser