为什么gradle eclipseClasspath任务不包含传递项目依赖项?

时间:2013-10-19 01:26:39

标签: gradle build.gradle gradle-eclipse

我创建了一个简单的例子(这些名称并不意味着什么):

文件夹结构:

gradleMultiProject
    build.gradle
    core
        build.gradle
        src
            main
                java
                    Core.java
    database
        build.gradle
        src
            main
                java
                    Database.java
    settings.gradle
    webapp
        build.gradle
        src
            main
                java
                    Webapp.java

以下是上述文件:

build.gradle(gradleMultiProject文件夹下的根gradle构建文件)

subprojects {
    apply plugin: 'java'
    apply plugin: 'eclipse'
}

settings.gradle include 'core', 'database', 'webapp'

gradleMultiProject \芯\ SRC \主\的java \ Core.java

package main.java;

public class Core
{
    public static String HELLO_MESSAGE = "hello world!";
}

Core的build.gradle

task hello {
    println "hello from core!"
}



gradleMultiProject \数据库\ SRC \主\的java \ Database.java

package main.java;

public class Database
{
  public void saveMessage()
  {
    System.out.println(Core.HELLO_MESSAGE);
  }
}

数据库的build.gradle

dependencies {
    compile project(':core')
}



gradleMultiProject \ web应用\ SRC \主\ java中

package main.java;

public class Webapp
{
  public static void main(String[] args)
  {
    Database database = new Database();
    database.saveMessage();
    System.out.println(Core.HELLO_MESSAGE);
  }
}

Webapp的build.gradle

dependencies {
    compile project(':database')
}





Gradle编译一切就好了(gradle build)。它甚至可以很好地列出传递依赖(gradle依赖)。但是当我尝试为webapp项目生成.classpath文件(gradle eclipseClasspath)时,它不包含核心。
为什么?!?!?!?!?!

1 个答案:

答案 0 :(得分:0)

实际上这不是一个问题因为eclipse"出口"数据库中的核心。这意味着它将出现在任何需要数据库项目的项目中。

我刚刚创建了这个确切的项目,然后运行" gradle eclipse"并且没有构建错误,因为webapp项目需要数据库项目和数据库项目需要并导出核心项目。要了解更多关于eclipse中构建路径的信息。