Grails 如何在构建时排除jar所需的插件?

Grails 如何在构建时排除jar所需的插件?,grails,jar,dependency-management,Grails,Jar,Dependency Management,我有一个Grails插件,它在构建时(在构建war之前)做一些工作(预编译静态文件)。要完成它的工作,需要一些jar依赖项。因此,只有在构建时才需要这种依赖关系。我怎样才能把他们排除在最后的战争之外 添加到您的BuildConfig.groovy: grails.war.resources = { stagingDir -> delete(file:"${stagingDir}/WEB-INF/lib/whatever.jar") } 这最好使用脚本来完成。在为需要排除jar文件

我有一个Grails插件,它在构建时(在构建war之前)做一些工作(预编译静态文件)。要完成它的工作,需要一些jar依赖项。因此,只有在构建时才需要这种依赖关系。我怎样才能把他们排除在最后的战争之外

添加到您的
BuildConfig.groovy

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

这最好使用脚本来完成。在为需要排除jar文件的产品部署WAR时,我必须使用这个方法

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

在scripts/_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()
      }
   }
}

要删除具有通配符匹配的jar,请使用
delete(){fileset(dir:${stagingDir}/WEB-INF/lib/”,包括:“what*jar”)}