使用Gradle将错误的文件添加到WAR包中

时间:2013-04-30 13:08:30

标签: java war gradle

我正在使用Gradle 1.5,我正在尝试将WAR plugin改编为Eclipse动态项目。

当eclipse导出WAR时,war文件的根目录上直接有xhtml个文件,我设法用Gradle做到了。

但是在我的Gradle导出的战争中,我xhtml文件与WEB-INF/classes个文件一起重复了.class个文件

我只希望在该文件夹中包含.class个文件,但我找不到办法

以下是我的build.gradle文件的相关部分

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'

webAppDirName = 'WebContent'

sourceSets {
    main {
        java {
            srcDir 'src'
        }
    }
}

eclipse {
    // my eclipse plugin config..
}

dependencies {
    // my dependencies config.
}

我对war插件进行的唯一自定义是将webAppDirName更改为指向我的WebContent文件夹。

有谁知道如何定义WEB-INF/classes目录中的内容?我似乎无法掌握它。


修改 我已设法通过将资源引用到我的.xhtml目录来删除bin重复项:

sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'bin'
        }
    }
}

但我的WEB-INF中仍有错误的文件。

我甚至有这个结构WEB-INF/classes/WEB-INF。我不知道为什么这些文件夹被添加到我的classes目录中,因为它们不存在于我的bin

我希望bin中的课程位于WEB-INF/classes 我的WebContent中的静态资源位于WAR文件的根目录

2 个答案:

答案 0 :(得分:3)

默认情况下,WEB-INF/classes的内容是main源集的输出(已编译的类和已处理的资源)。构建脚本声明了一个额外的源目录(src),并保留了默认的资源目录。您有src/main/javasrc/main/resources下的任何文件吗?

答案 1 :(得分:0)

Eclipse使用bin文件夹作为其输出文件夹,因此您的文件可能会以这种方式混淆。