使用Gradle maven-publish插件将具有子项目依赖的项目发布到maven

Sar*_*tre 6 java android gradle multi-module maven-publish

我有一个具有以下结构的 gradle 多项目:

\n\n
root\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core-library\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 additional-feature-library\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 entities\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 sample-android-app\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置.gradle:

\n\n
include(":core-library")\ninclude(":additional-feature-library")\ninclude(":additional-feature-library:entities")\ninclude(":sample-android-app")\n
Run Code Online (Sandbox Code Playgroud)\n\n

附加功能库/build.gradle:

\n\n
plugins {\n    id("java-library")\n    id("kotlin")\n    id("maven-publish")\n}\n\ndependencies {\n    implementation(project(":additional-feature-library:entities"))\n    implementation(project(":core-library"))\n\n    // ... other dependencies from maven\n}\n\npublishing {\n    publications {\n        maven(MavenPublication) {\n            groupId = "com.example"\n            artifactId = "additional-feature-library"\n            version = "1.0.0"\n\n            from components.java\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我执行任务additional-feature-library/publishToMavenLocal时,它会生成*.jar文件,其中包含来自additional-feature-library和POM的类,具有以下依赖项:

\n\n
  <dependencies>\n    <dependency>\n      <groupId>root.additional-feature-library</groupId>\n      <artifactId>entities</artifactId>\n      <version>unspecified</version>\n      <scope>runtime</scope>\n    </dependency>\n    <dependency>\n      <groupId>root</groupId>\n      <artifactId>core-library</artifactId>\n      <version>1.0.2</version>\n      <scope>runtime</scope>\n    </dependency>\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是这些依赖项不存在(实际上 core-library 将发布到 maven)。我想删除子项目additional-feature-library/entities 产生的依赖关系,并将该子项目中的类包含到 *.jar 文件中。是否可以?

\n