1

我创建了一个简单的示例(名称实际上没有任何意义):

文件夹结构:

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'
}

设置.gradle include 'core', 'database', 'webapp'

gradleMultiProject\core\src\main\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\database\src\main\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\webapp\src\main\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)时,它不包含核心。

为什么?!?!?!?!?!

4

1 回答 1

0

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

我刚刚创建了这个确切的项目并运行“gradle eclipse”并且没有构建错误,因为 webapp 项目需要数据库项目,而数据库项目需要并导出核心项目。要查看更多信息,请查看 eclipse 中的构建路径。

于 2015-04-24T12:47:14.393 回答