maven - Maven - 发布多个子模块/工件
问题描述
我有一个像这样组织的 Kotlin 项目:
project-name
> project-name-core
> project-name-domain
我的 gradle 发布脚本是这样设置的:
publishing {
repositories {
mavenLocal()
}
publications.all {
pom.withXml(configureMavenCentralMetadata)
}
publications {
mavenPublication(MavenPublication) {
from components.java
groupId 'com.project'
artifactId 'project-name'
artifact sourcesJar
artifact javadocJar
}
}
}
当我运行时,./gradlew publishToMavenLocal
我可以project-name
在本地存储库缓存中看到,但看不到project-name-core
or project-name-domain
。
如何配置 gradle 以将我的子模块发布到 maven 本地存储库缓存?
解决方案
最好的猜测是您只将发布插件应用于根项目而不是子项目。
如果您打算src/
在子项目之外发布根项目 ( ),那么您应该将配置移动到allprojects
块中:
allprojects {
publishing {
publications.all {
pom.withXml(configureMavenCentralMetadata)
}
publications {
mavenPublication(MavenPublication) {
from components.java
groupId 'com.project'
artifactId 'project-name'
artifact sourcesJar
artifact javadocJar
}
}
}
}
否则,如果您只想发布子项目,则替换allprojects
为subprojects
此外,您不需要使用 .config 添加配置存储库mavenLocal()
。
推荐阅读
- html - 使用 Bootstrap 4.2 在其他列中的两行之间拉列
- azure-active-directory - 我可以使用 AzureAD IDToken 访问 Graph API
- python - 使用 OpenCV 分隔对象计数
- javascript - 如何在 React / Javascript 中触发表单错误处理?
- ubuntu - sshd_config 通过 systemd 更改
- c++ - 有没有办法(实时)更新动态库中变量的值?
- python - cmder virtualenv 名称显示
- java - 计算机科学卡路里计算器 1
- amazon-web-services - Paws::SQS::TagQueue 失败,并显示“在未预期的位置找到列表开始”
- angular - 手动更改 URL 后未调用 ngOnInit