我创建了一个简单的示例(名称实际上没有任何意义):
文件夹结构:
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)时,它不包含核心。
为什么?!?!?!?!?!