生成的资源不会出现在eclipse-wtp发布的jar中

时间:2018-02-10 04:52:31

标签: gradle buildship

我有一个包含两个子项目的项目:依赖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: '/' } } } 时,资源必须已经存在,因此需要进行舞蹈:

  1. 导入项目
  2. 运行完整的gradle build
  3. 为具有生成源的任何模块刷新Gradle
  4. 清理Tomcat服务器

0 个答案:

没有答案