在Grails中创建war时从插件中删除特定的jar

在Grails中创建war时从插件中删除特定的jar,grails,grails-plugin,dependency-management,Grails,Grails Plugin,Dependency Management,我在Grails 2.2.4应用程序中使用的是dynamic jasper:0.6,该插件目前正在导入mysql连接器的旧版本mysql-connector-java-5.0.4-bin.jar,在某些情况下与我当前的连接器冲突并产生一些问题。我希望继续使用插件而不修改它,但也排除特定的jar文件,只包括我需要的库。有没有办法做到这一点 我试图将该文件从_Events.groovy中排除,但没有成功。这是我的代码 includeTargets << grailsScript("_Gr

我在Grails 2.2.4应用程序中使用的是dynamic jasper:0.6,该插件目前正在导入mysql连接器的旧版本mysql-connector-java-5.0.4-bin.jar,在某些情况下与我当前的连接器冲突并产生一些问题。我希望继续使用插件而不修改它,但也排除特定的jar文件,只包括我需要的库。有没有办法做到这一点

我试图将该文件从_Events.groovy中排除,但没有成功。这是我的代码

includeTargets << grailsScript("_GrailsInit")

target(main: "The description of the script goes here!") {
    eventCreateWarStart = { name, stagingDir ->
    ant.delete(dir:"${stagingDir}/WEB-INF/lib/", includes: "mysql-connector*.jar", verbose: true)
}
}

setDefaultTarget(main)
includeTargets
delete(dir:${stagingDir}/WEB-INF/lib/,包括:“mysql connector*.jar”,verbose:true)
}
}
setDefaultTarget(主)

添加
脚本/\u事件。groovy

eventCreateWarStart = { name, stagingDir ->
    ant.delete(dir:"${stagingDir}/WEB-INF/lib/", includes: "xercesImpl*.jar", verbose: true)
}
上述示例当然适用于
xerces
,只需根据您的喜好更改
包含:
掩码即可。如果您已经有一个闭包
eventCreateWarStart
,只添加
ant.delete
部分

然而,在mysql连接器的情况下,它很可能被引用为当前项目中的
运行时
,您也可以尝试使用exclude防止它从插件中溢出,例如(
BuildConfig.groovy
,例如
plugins
部分中的条目):


请参见排除特定可传递依赖项的

事实上我已经尝试过这是我的_Events.groovy,不起作用includeTargets ant.delete(dir:${stagingDir}/WEB-INF/lib/,includes:“mysql connector*.jar”,verbose:true)}setDefaultTarget(main)所以你自己在写一个插件,你不想把它导出?在这种情况下,如果您只是
排除BuildConfig中的工件,那么工作应该会容易得多?不,我正在尝试从先前存在的插件中删除jar。我已经用我的_Events.groovy代码更新了我的问题。把上面的代码放进去。没有init和main等,或者至少这种语法对我来说太复杂了,或者可能是旧grails版本的残余?我猜使用IDE生成的默认代码是个坏主意。简单地说就行了谢谢
compile(":vaadin:7.3.9") { excludes 'xercesImpl' }