不要将gradle子项目安装为外部依赖项

时间:2019-10-03 04:46:30

标签: java maven gradle maven-plugin

我有以下gradle多项目结构。

root-project
   -A
     build.gradle
   -B
     build.gradle
 build.gradle
 settings.gradle

A有一些简单的Java代码和几个外部依赖项。 B已将A作为compile(':A')B还有一个适用于apply plugin: 'maven'的maven插件。

现在,我的问题是每当我执行./gradlew install时,B会将A包含为外部Maven依赖项。使用B的人无法编译,因为找不到A。我该如何跳过将maven插件应用于A并将其所有代码包含在B中的方法?

2 个答案:

答案 0 :(得分:0)

要么:

  1. 将工件发布到外部或内部存储库
  2. 直接依赖项目库,如下所示。

-

// Project B
dependencies {
    implementation(project(":a"))
}

参考:

答案 1 :(得分:0)

如果项目B正在生产jar,我们有很多选择,但是在我的情况下,它应该是第三方使用的maven依赖项。我找不到一个直接的解决方案。因此,我最终在B中添加了A的源。在B的build.gradle中是这样的:

 sourceSets {
    main {
        java {
            srcDir 'src/main/java'
            srcDir '../A/src/main/java'
        }
    }
}

唯一的缺点是我还必须在A中包括B的依赖项。如果有人采用更优雅的方法,我将很乐意接受。