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 回答