使用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

settings.gradle:

include(":core-library")
include(":additional-feature-library")
include(":additional-feature-library:entities")
include(":sample-android-app")

additional-feature-library / 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
        }
    }
}

当我执行任务Additional-feature-library / publishToMavenLocal时,它会生成* .jar文件,其中包含来自Additional-feature-library和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>

问题在于这些依赖项不存在(实际上核心库将发布到maven)。我想删除子项目Additional-feature-library / entities产生的依赖关系,并将该子项目中的类包含到* .jar文件中。有可能吗?

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

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2576471.html

大家都在问