【问题标题】:Wrong files added to WAR package using Gradle使用 Gradle 将错误文件添加到 WAR 包
【发布时间】:2013-04-30 13:08:29
【问题描述】:

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

当 WAR 由 eclipse 导出时,它的 xhtml 文件直接位于 war 文件的根目录,我设法使用 Gradle 做到了这一点。

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

我只想将我的 .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.
}

我对战争插件所做的唯一自定义是将webAppDirName 更改为指向我的WebContent 文件夹。

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


编辑 通过将资源引用到我的bin 目录,我设法删除了.xhtml 重复项,如下所示:

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

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

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

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

【问题讨论】:

    标签: java war gradle


    【解决方案1】:

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

    【讨论】:

    • 您对如何防止将多余的文件夹添加到我的classes 目录有什么建议吗?您还需要更多信息吗?
    • 我不知道你的源目录结构是什么。同样,src/main/javasrc/main/resources 下是否有任何文件?您是否尝试过覆盖默认值(例如srcDirs = ['src']),而不是添加其他目录?
    • 没有我的文件直接在src 下没有main/java 结构。你能编辑你的答案,给我看一个覆盖的例子吗?
    • 我编辑了从resources{ srcDir 'bin' }resources{ srcDirs = ['bin'] } 的条目,这是否应该复制bin 目录中的文件?
    • 在资源方面,答案是肯定的。你应该为sourceSets.main.java做同样的事情。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-03
      • 2019-05-22
      • 2016-04-28
      • 2017-01-27
      • 2014-12-27
      • 2017-05-15
      • 2020-08-15
      • 2019-05-23
      相关资源
      最近更新 更多