Stackoverflow 上已经存在关于从 Gradle 向 Maven 发布预构建 jar 的问题。但是,这略有不同:如何将预构建的 Jar 发布到 Maven 存储库,同时提供要包含在 pom.xml 文件中的依赖项?
我有一个在此脚本外部预构建的 jar。我需要将此 jar 发布到我们的 Maven 存储库 (Nexus) 并在 pom.xml 中指定依赖项。我已经能够使用工件闭包将预构建的 jar 发布到 Maven 存储库,但它忽略了依赖项闭包。如果我添加 java 插件,那么 Maven 插件会创建一个带有依赖项的 pom,但会上传一个零字节的 jar 文件。我猜这是因为 Java 插件希望在 src 目录中编译和打包源代码,而这个项目中不存在。
有没有办法可以将预构建的 Jar“注入”到 Java 插件进程中,以便可以将 jar 与依赖项一起上传?还是我错过了其他明显的东西?
当然,最好的办法是预先构建 Jar 的构建过程来概述其依赖项并上传到 Maven,但不幸的是,它是第 3 方软件,我们无法控制。
下面的脚本发布一个零 kb 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"
}
}
}
非常感谢!抢