2014-01-23 93 views

回答

0

好的,所以你有两个项目,而ProjA依赖于ProjB。

如果你已经为这些人建立了一个gradle build,他们都会有一个文件settings.gradle,它至少定义了项目名和build.gradle,你可以在其中指定依赖关系。

例子: settings.gradle

rootProject.name = 'ProjA' 

的build.gradle

group = 'mygroup' 
version = '1.0' 

通过进一步增加摇篮出版插件之一(见Maven publishingIvy publishing),可以配置发布。出版物又包含工件,即要上传的文件(通常是一些存储库)。对于最小的Maven发布 例子:

apply plugin: 'maven-publish' 
publishing { 
    publications { 
     core(MavenPublication) { 
      from components.java 
     } 
    } 
} 

的Maven的发布插件将任务publishToMavenLocal(等等)添加到您的项目,地方安装罐子~/.gradle/caches/

在ProjB的的build.gradle然后你可以定义一个编译时依赖于ProjA像这样:

dependencies { 
    compile(group: 'mygroup', name: 'ProjA', version: '1.0') 
} 
+0

感谢您的回复。你能告诉我如何将项目工件上传到本地存储库吗?因为在ProjA的build.gradle中添加了“apply plugin:'maven-publish'”之后,执行了“build”命令,并且无法找到它在本地机器中添加的位置。 – Pand005

+0

您需要先配置发布插件。查看更新后的文章,了解maven-publish插件的最小配置。 – Hailstorm

0

如果您的项目位于同一位置,你可以有一个多构建项目。

说你有这些内容的根文件夹:

  • 一些根目录
    • 项目一
      • project-a.gradle
      • SRC
    • 项目-B
      • project-b.gradle
      • SRC
    • build.gradle
    • settings.gradle

settings.gradle包含:

include 'project-a', 'project-b' 

project-b.gradle则依赖于项目A:

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

在此之后,项目将始终编译和组装前编制项目-B时,项目B和项目,一个jar jar文件将在类路径中。

+0

我们的项目不在同一地点,但ProjB依赖于ProjA来编译ProjB。我试过在settings.gradle中添加ProjA,并在ProjB中添加了“compile project(':ProjA')”。但ProjB无法构建依赖关系。 – Pand005

+0

您不能将依赖项放在不共处的项目上,以至于无法工作。你坚持要么发布到本地存储库,要么通过那里发布它,要么你可以编译ProjA并将该jar放入ProjectB的lib文件夹中,然后引用它。 '库'{flatDir dirs:'lib'}' '依赖项{compile':projectA_jar_name'//没有jar扩展名只是名称}' – jacobono

相关问题