我有一个包含两个子项目的项目:依赖jar和webapp。我使用的是eclipse-wtp插件:
allprojects {
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
}
依赖项会生成一些资源(例如,通过下载和解压缩tarball)。依赖项有一个块,用于将生成的资源目录配置为输出:
def baseGenDir = "${buildDir}/generated-resources/main"
sourceSets {
main {
output.dir(baseGenDir, builtBy: 'unzipDependency')
}
}
webapp依赖于依赖:
dependencies {
compile project(':dependency')
}
如果我./gradlew build
,则webapp的战争包含一个包含生成文件的dependency-0.0.1-SNAPSHOT.jar。
但是如果我在Eclipse中将Web应用程序发布到Tomcat,我会得到{{1>} 不包含生成的文件。它有我的.java源文件的.class文件,但没有来自build / generated-resources / main的资源。尝试加载资源失败 - 它们在webapp的类路径中不可用。
如何将生成的资源放入Eclipse为Tomcat生成的jar中?
示例项目:https://github.com/ms1111/test-gen-resource
更新2018-02-12
此时,Buildship无法自动生成资源(#265,#266)。
以下块将告诉Buildship发布生成的资源:
~/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webapp/WEB-INF/lib/dependency.jar
但是,在Buildship生成eclipse {
wtp {
component {
// Make sure generated resources
// get included in the jars published to Eclipse's Tomcat
resource sourcePath: "build/generated-resources/main", deployPath: '/'
}
}
}
时,资源必须已经存在,因此需要进行舞蹈: