首页 > 解决方案 > 如何使用 Gradle 将 JAR 从 WEB-INF\lib 文件夹移动到 WAR 文件中的另一个文件夹?

问题描述

我想将 JAR 从 WEB-INF\lib 文件夹移动到 WAR 文件中的另一个文件夹。以下不起作用:

war { 
        // I don't want my.jar in WEB-INF\lib folder 
        exclude "**/my.jar"

        // I want my.jar in "myFolder" folder 
        into("myFolder") {
            def myFiles = classpath.filter{ File file -> file.name.endsWith("my.jar")}

            from(myFiles)
        }
}

my.jar 不在“myFolder”文件夹中。

标签: gradlejarwar

解决方案


问题是您的exclude语句将排除任何遵循模式**/my.jar的文件被任务处理,即使在子规范中也是如此。但是你不想排除文件,你只想修改它的路径:

war {
    filesMatching('**/my.jar') { file ->
        file.path = 'myFolder/' + file.name
    }
}

推荐阅读