3

ここで明らかな何かが欠けているように感じますが、見つけられないようです。

私は自分のパッケージ構造をそのようにしたいプロジェクトを持っています

/src
    /webapp
        /webapp-package-1
        /webapp-package-2
    /iface
        /iface-package-1
        /iface-package-2

iface のクラスをパッケージ化して jar にするタスクを定義したいと考えています。だから私はここのユーザーガイドに従いました: http://www.gradle.org/0.8/docs/userguide/userguide_single.html#configureSourceSet (私はバージョン 0.8 を使用しています)。

私は今これを持っています、

sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'src'
        }
    }
    intTest {
        java {
            srcDir 'src/iface/'
        }
        resources {
            srcDir 'src'
        }
    }
    test {
        java {
            srcDir 'test'
        }
        resources {
            srcDir 'src'
        }
    }
}


task intTestJar(type: Jar, dependsOn: intTestClasses) {
    from sourceSets.intTest.classes
}

また、 のクラスintTestが で適切に構築されていることを確認でき/build/classes/intTestます。ただし、intTestJar常に呼び出そうとすると、次の警告が表示されます。

[ant:jar] Warning: skipping jar archive C:\workspace\foo\build\libs\foo-1.0.jar because no files were included.

クラスが正常に作成されているため、これはわかりません。また、フル ビルド タスクは jar 全体を正常に作成します。

アイデア?

4

1 に答える 1

3

このソリューションは、最新バージョンの Gradle (0.9.2) で動作するようです。このファイルツリーで、上に示したとおりに intTestJar タスクを実行しました (もちろん Java プラグインを追加します)。

└── iface
    └── ifacePackageOne
        ├── Test.java
        └── testFile.txt

結果のjar構造は次のとおりです。

├── META-INF
│   └── MANIFEST.MF
└── iface
    └── ifacePackageOne
        ├── Test.class
        └── testFile.txt

簡単な答えは、新しいバージョンの Gradle を試してみることです。http://gradle.org/

于 2011-02-25T02:07:01.497 に答える