我觉得我在这里遗漏了一些明显的东西,但我似乎无法找到它。
我有一个项目,我希望我的包结构如此
/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。
想法?
答案 0 :(得分: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/