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

settings.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!";
}

コアの 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 ビルド)。推移的な依存関係もうまくリストされています(gradle依存関係)。しかし、webapp プロジェクトの .classpath ファイル (gradle eclipseClasspath) を生成しようとすると、コアが含まれません。

どうして?!?!?!?!?!

4

1 に答える 1

0

Eclipse はデータベースのコアを「エクスポート」するため、実際にはこれは問題ではありません。つまり、データベース プロジェクトを必要とするすべてのプロジェクトに表示されるということです。

この正確なプロジェクトを作成し、「gradle eclipse」を実行しましたが、webapp プロジェクトにはデータベース プロジェクトが必要であり、データベース プロジェクトにはコア プロジェクトが必要でエクスポートされるため、ビルド エラーはありません。詳しくは、Eclipse のビルド パスを参照してください。

于 2015-04-24T12:47:14.393 に答える