如何排除构建时需要的插件jar



我有Grails插件,它在构建时(在战争构建之前(做一些工作(预编译静态文件(。为了完成它的工作,需要一些jar依赖项。因此,只有在构建时才需要这种依赖关系。我如何才能将他们排除在最终战争之外?

添加到您的BuildConfig.groovy:

grails.war.resources = { stagingDir ->
    delete(file:"${stagingDir}/WEB-INF/lib/whatever.jar")
}

这最好使用脚本完成。在为需要排除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()
      }
   }
}

最新更新