3

我有 Grails 插件,可以在构建时(在构建战争之前)完成一些工作(预编译静态文件)。要完成它的工作,需要一些 jar 依赖项。因此,仅在构建时才需要此依赖项。我怎样才能将它们从最终的 WAR 中排除?

4

2 回答 2

8

添加到您的BuildConfig.groovy

grails.war.resources = { stagingDir ->
    delete(file:"${stagingDir}/WEB-INF/lib/whatever.jar")
}
于 2013-02-25T08:57:02.370 回答
0

最好使用脚本来完成。在为需要排除 jar 文件的生产部署 WAR 时,我不得不使用它。

在脚本目录下创建一个名为 _Event.groovy 的脚本文件。在 _Event.groovy 文件中,添加删除 jar 的代码。顺便说一句,这是事件触发的,必须遵循命名约定。

在脚本/_Event.groovy

eventCreateWarStart = { warName, myDir ->
   println 'EVENT CALLED!'
   File libDir = new File("${myDir}/WEB-INF/lib/")
   if (grailsEnv != "development") {
      libDir.eachFileMatch( ~/^(tomcat|grails-plugin-tomcat).*\.jar$/) { File jarToRemove ->
         println 'REMOVING JAR: ' + jarToRemove
         jarToRemove.delete()
      }
   }
}
于 2013-02-25T21:19:37.500 回答