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

时间:2015-03-09 09:09:16

标签: grails grails-plugin dependency-management

我使用的是动态jasper:0.6和我的Grails 2.2.4应用程序,该插件目前正在导入旧版本的mysql-connector 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)

1 个答案:

答案 0 :(得分:2)

添加scripts/_Events.groovy

eventCreateWarStart = { name, stagingDir ->
    ant.delete(dir:"${stagingDir}/WEB-INF/lib/", includes: "xercesImpl*.jar", verbose: true)
}

以上示例当然是xerces,只需根据自己的喜好更改includes:掩码。如果您已经有一个eventCreateWarStart,只需添加ant.delete部分。

然而,对于当前项目中很可能被引用为runtime的mysql-connector,您可能会尝试使用排除来防止它从插件中流失,例如({ {1}}例如BuildConfig.groovy部分中的条目:

plugins

compile(":vaadin:7.3.9") { excludes 'xercesImpl' }

http://grails.github.io/grails-doc/2.4.4/guide/conf.html#configurationsAndDependencies