java - 使用 Gradle maven-publish 插件将具有子项目依赖项的项目发布到 maven
问题描述
我有一个具有以下结构的 gradle 多项目:
root
│
├── core-library
│ └── build.gradle
│
├── additional-feature-library
│ │
│ ├── entities
│ │ └── build.gradle
│ │
│ └── build.gradle
│
├── sample-android-app
│ └── build.gradle
│
├── build.gradle
└── settings.gradle
设置.gradle:
include(":core-library")
include(":additional-feature-library")
include(":additional-feature-library:entities")
include(":sample-android-app")
附加功能库/build.gradle:
plugins {
id("java-library")
id("kotlin")
id("maven-publish")
}
dependencies {
implementation(project(":additional-feature-library:entities"))
implementation(project(":core-library"))
// ... other dependencies from maven
}
publishing {
publications {
maven(MavenPublication) {
groupId = "com.example"
artifactId = "additional-feature-library"
version = "1.0.0"
from components.java
}
}
}
当我执行任务附加功能库/publishToMavenLocal 时,它会生成 *.jar 文件,其中包含来自附加功能库和 POM 的类,具有以下依赖项:
<dependencies>
<dependency>
<groupId>root.additional-feature-library</groupId>
<artifactId>entities</artifactId>
<version>unspecified</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>root</groupId>
<artifactId>core-library</artifactId>
<version>1.0.2</version>
<scope>runtime</scope>
</dependency>
问题是这些依赖项不存在(实际上 core-library 将发布到 maven)。我想删除子项目附加功能库/实体产生的依赖关系,并将该子项目中的类包含到 *.jar 文件中。可能吗?
解决方案
推荐阅读
- apollo - apollo graphql 响应数据不会因网络错误而更新
- python - 从 Python 脚本模拟 Win+D(显示桌面)
- django - 为什么不从视图调用自定义序列化程序 save() 方法?
- javascript - 如何正确使用ANT上传和显示图片缩略图
- c - 了解 C 中链表中的插入 - 指针
- git - git push failed unpack failed: error The lease on index has expired
- flutter - amplify_flutter 任何不存在的(在 https://pub.dartlang.org 上找不到包 amplify_flutter),
- javascript - 如何显示特定区块的背景
- ios - 适用于 iOS 14.4(Beta) 的设备支持文件
- sql - SQL 通过合并基于相同“键”列的行来减少表,合并不同的“非键”列