如何使用Gradle将源发布到本地maven存储库?

我正在开发两个相关的项目。 其中一个是“帮手”,另一个是“主要”。 我不断更新“主要”,但我不时也更新“帮助”。 之后我在gradle的maven插件中运行install目标并在本地maven repo中获取jar。 之后,我在“主”项目中进行gradle更新并更新了jar子链接。

有两个问题。

1)如果使用maven插件,那么如何将源代码发布到本地maven repo中呢?

2)我可以在没有maven插件的情况下进行类似操作,只能使用Gradle吗?

使用“maven-publish”插件发布源代码很容易:

 apply plugin: "maven-publish" task sourceJar(type: Jar) { from sourceSets.main.allJava } publishing { publications { mavenJava(MavenPublication) { from components.java artifact sourceJar { classifier "sources" } } } } 

然后去发布到本地maven run: gradle publishToMavenLocal

更多信息请参阅文档: https : //docs.gradle.org/current/userguide/publishing_maven.html#gsc.tab=0

也许你对一个多模块项目更好。 然后根本不会出现安装的必要性。

这里讨论-sources.jar的主题

我相信更清洁,更简洁的解决方案就是使用maven-plugin ,它提供了与Maven install任务相匹配的install任务。 更新build.gradle以包含以下内容:

 apply plugin: 'maven' 

然后发布(例如安装)到Maven本地存储库,运行: gradle install./gradlew install 。 另请参见此解决方案: Gradle替代mvn install

注意:当前的Gradle文档(截至v4.9)说maven-plugin是“Old Maven插件”(但不推荐使用)。 https://docs.gradle.org/current/userguide/maven_plugin.html

我认为这是目前这个问题最简单的解决方案。