我不知道这是 Gradle 1.0m7 的错误,还是我们只是做错了。

我们有一些类作为项目的一部分进行编译,我们希望将它们单独 jar 放入它自己的工件中。例如,这些是我们要与另一个项目共享的独立域模型对象。

我不想走多项目构建路线,那么我们如何告诉Gradle为此创建另一个jar?

目前我们正在这样做:

task modelJar(type: Jar) {
    classifier = 'model'
    from fileTree(dir: sourceSets.main.classesDir).matching { include 'com/foo/bar/model/**' }
}

artifacts {
    archives modeljar
}

这里的问题是,在编译类之前,modeljar任务在之前运行。起初我们没有意识到这一点,并认为这是有效的。事实证明,该工件是从上次运行中获取类,而不是当前运行中。在构建之前进行清洁会导致jar中没有类,从而揭示了问题所在。

我正在查看自定义配置,但它看起来非常复杂,我不想让构建文件过于复杂。

感谢任何建议。

谢谢。

最佳答案

如何使 modelJar 任务依赖于 classes(内置)任务?这应该确保在 modelJar 任务之前完成编译。

task modelJar(dependsOn: classes, type: Jar){
  ...

关于java - 如何使用 Gradle 从编译的类中创建额外的 jar 工件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9187875/

10-10 17:24