gradle项目中的配置,上载和依赖项

时间:2015-11-09 22:07:34

标签: maven gradle build.gradle

我在基于gradle的项目中构建一些相互依赖的模块时遇到了问题。我想要做的是有一个项目(类似于我曾经使用的一些maven项目),其中依赖项是在每个其他版本上,所以当部署到maven存储库时,可用,但构建模块构建的依赖关系。

为了说明,我有一个带有几个子模块的gradle项目。

ProjectA
|- module-a
\- module-b (depends on module-a)

在模块b中,我使用compile "{groupId:module-b:{versionName}指定依赖项,在项目根build.gradle中,我有

project(':module-b') {
    dependencies {
        compile project(':module-a')
    }
}

另一个依赖于另一个项目的项目。

ProjectB
\- module-c (depends on module-b)

构建ProjectB时,存在无法找到ProjectA:module-a:unspecified的错误。为module-b生成的pom确实包含了这种依赖。

如果我删除ProjectA的根build.gradle中的依赖项规范,当我尝试构建时,module-b找不到module-a(在依赖项解析阶段)。 module-a还没有在任何地方部署,所以这对我来说很有意义。

我希望module-b依赖于它的兄弟,但是它的pom显示了maven风格的版本依赖关系,因此module-c可以依赖于module-b并且可以传递地获取module-a。

(不要求ProjectB是一个gradle项目。不管maven还是gradle都应该工作。)

Gradle配置文件

settings.gradle

include 'module-a', 'module-b'

的build.gradle

project(':module-b') {
  apply plugin: 'java'
  dependencies {
    compile project(':module-a')
  }
}

模块-A /的build.gradle

group 'com.example.coatedmoose'
version '1.0.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'maven'

uploadArchives {
  repositories {
    mavenDeployer {
      mavenLocal()
    }
  }
}

模块-B /的build.gradle

group 'com.example.coatedmoose'
version '1.0.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'maven'

dependencies {
  compile 'com.example.coatedmoose:module-a:1.0.0-SNAPSHOT'
}
uploadArchives {
  repositories {
    mavenDeployer {
      mavenLocal()
    }
  }
}

0 个答案:

没有答案