有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java渐变本地项目依赖项

我有两个Gradle项目都在同一个目录中。目录结构如下:

ParentDirectory\
    GradleProjectA\
        build.gradle
    GradleProjectB\
        settings.gradle
        build.gradle

我想将GradleProjectA作为依赖项添加到GradleProjectB。在settings.gradlefor GradleProjectB中,我尝试添加include 'GradleProjectA',然后在build.gradlecompile project(':GradleProjectA')中添加,但没有效果

任何帮助都将不胜感激。谢谢


共 (5) 个答案

  1. # 1 楼答案

    下面应该可以做到这一点:

    root
    +-- projectA
    |   +-- build.gradle
    |       => dependencies { compile project(':common') }
    |   +-- settings.gradle 
    |       => include ':common'
    |          project(':common').projectDir = new File('../common')
    +-- projectB
    |   => same as projectA
    +-- common
        +-- build.gradle
            => regular build, probably with a "jar" section
    
  2. # 2 楼答案

    我这样做的方式如下:

    GradleProjectB/settings.gradle

    include ':GradleProjectA'
    project(':GradleProjectA').projectDir = new File('../GradleProjectA')
    

    GradleProjectB/build.gradle

    compile project(":GradleProjectA")
    
  3. # 3 楼答案

    如果GradleProjectAGradleProjectB是一个多项目渐变构建的一部分,那么您可能希望settings.gradleParentDirectory中包含A和B。您使用settings.gradle的方式不正确。也许您应该重新阅读《用户指南》中关于多项目gradle构建的部分

    如果这两个项目是独立的项目,但您仍然希望依赖于B中的A,那么您可能更愿意构建A,将其发布到某个存储库(可能是mavenLocal存储库),然后依赖于项目B中构建的工件

  4. # 4 楼答案

    在Gradle的最新版本中,可以使用Composite Builds,如下所示:

    GradleProjectB的设置中。gradle,添加以下行:

    includeBuild "../GradleProjectA"

    它将自动处理依赖冲突和所有这些事情

  5. # 5 楼答案

    设置。gradle文件需要位于父目录中,并指定两者

    请尝试以下格式:

    ParentDirectory\ 
        build.gradle
        settings.gradle <-- include 'GradleProjectA', 'GradleProjectB'
        GradleProjectA/
            build.gradle
        GradleProjectB/
            build.gradle
    

    编辑: 确定如果父目录不是生成目录,则可以执行以下操作:

    在gradle project b设置中。gradle文件请尝试以下操作:

    includeFlat("GradleProjectA") // Include the project
    

    你的b型身材。格拉德尔:

    compile project(":GradleProjectA")
    

    includeFlat reference