首页 > 解决方案 > Gradle WAR 与 WEB-INF/classes 下的编译类

问题描述

我正在尝试将遗留的 Java webapp 项目移植到 gradle 中。

这是我的 build.gradle 的片段

def customBuildPath = 'build/classes'

war {
    from(customBuildPath) {
        into 'WEB-INF/classes'
    }

    from('WebContent') {
        include 'Web/**/*'
        into ''
    }
}

dependencies {
  
    compile fileTree(dir: 'projectlibs/lib', include:'*.jar')
    compile fileTree(dir: 'build/classes', include:'**')
}

为了维护自定义结构,我想将所有*.class文件放在下面并且WEB-INF/classes它可以工作,但我也在.*.classWEB-INF/lib

我的目标是将 jar 和类保存在单独的 war 文件夹中。

有什么想法吗?

编辑:添加dependencies{}build.gradle片段中。

标签: javagradlebuild.gradlewar

解决方案


通过从依赖项中注释掉构建的类来解决问题:

def customBuildPath = 'build/classes'

war {
    from(customBuildPath) {
        into 'WEB-INF/classes'
    }

    from('WebContent') {
        include 'Web/**/*'
        into ''
    }
}

dependencies {
  
    compile fileTree(dir: 'projectlibs/lib', include:'*.jar')
//    compile fileTree(dir: 'build/classes', include:'**')
}

推荐阅读