我正在开发两个相关的项目。其中一个是“helper”项目,另一个是“main”项目。我不断更新“main”,但有时我也会更新“helper”项目。之后,我在gradle的maven插件中运行install目标,并在本地maven存储库中获取jar。之后,我在“main”项目中进行gradle更新,并更新了链接的jar。有两个问题。1)如果使用maven插件,那么如何将源代码发布到本地maven repo中呢?2)我是否可以在没有maven插件的情况下,仅使用Gradle进行类似操作?
install
kupeojn61#
使用“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
gradle publishToMavenLocal
edqdpe6u2#
我认为一个更简洁的解决方案是使用maven-plugin,它提供了install任务,与Maven的install任务相匹配。更新您的build.gradle,使其包含以下内容:
maven-plugin
build.gradle
apply plugin: 'maven'
然后,要发布(例如安装)到Maven本地资源库,请运行:gradle install或./gradlew install。另请参阅此解决方案:Gradle alternate to mvn install注意:当前的Gradle文档(自v4.9起)称maven-plugin是“旧Maven插件”(但并未弃用)。https://docs.gradle.org/current/userguide/maven_plugin.html我认为这是目前解决这个问题最简单的办法。
gradle install
./gradlew install
rxztt3cl3#
也许你更适合多模块的项目,那么就根本不需要 install。讨论的主题
mnemlml84#
我通过简单地将以下代码添加到构建文件中来做到这一点:
java { withSourcesJar() }
e4eetjau5#
以下是Gradle 7.5.1的替代框架,Java 17将生成javadoc和sources jar沿着源代码。
javadoc
sources
构建.gradle
plugins { id 'org.gradle.java' id 'org.gradle.maven-publish' } repositories { mavenLocal() mavenCentral() } dependencies { } java { toolchain { languageVersion = JavaLanguageVersion.of(17) } withJavadocJar() withSourcesJar() } publishing { publications { mavenJava(MavenPublication) { groupId = 'your-group' artifactId = 'your-artifact' version = "0.0.1" from components.java } } repositories { mavenLocal() } }
出版
添加--info以了解有关发布的更多详细信息。
--info
./gradlew --info publishToMavenLocal
输出
~/.m2/repository $ tree your-group/ your-group/ └── your-artifact ├── 0.0.1 │ ├── your-artifact-0.0.1-javadoc.jar │ ├── your-artifact-0.0.1-sources.jar │ ├── your-artifact-0.0.1.jar │ ├── your-artifact-0.0.1.module │ └── your-artifact-0.0.1.pom └── maven-metadata-local.xml
5条答案
按热度按时间kupeojn61#
使用“maven-publish”插件可以轻松发布源代码:
然后发布到本地maven run:
gradle publishToMavenLocal
更多信息,请参阅以下文档:https://docs.gradle.org/current/userguide/publishing_maven.html#gsc.tab=0
edqdpe6u2#
我认为一个更简洁的解决方案是使用
maven-plugin
,它提供了install
任务,与Maven的install
任务相匹配。更新您的build.gradle
,使其包含以下内容:然后,要发布(例如安装)到Maven本地资源库,请运行:
gradle install
或./gradlew install
。另请参阅此解决方案:Gradle alternate to mvn install注意:当前的Gradle文档(自v4.9起)称
maven-plugin
是“旧Maven插件”(但并未弃用)。https://docs.gradle.org/current/userguide/maven_plugin.html我认为这是目前解决这个问题最简单的办法。
rxztt3cl3#
也许你更适合多模块的项目,那么就根本不需要 install。
讨论的主题
mnemlml84#
我通过简单地将以下代码添加到构建文件中来做到这一点:
e4eetjau5#
以下是Gradle 7.5.1的替代框架,Java 17将生成
javadoc
和sources
jar沿着源代码。构建.gradle
出版
添加
--info
以了解有关发布的更多详细信息。输出