如何从war文件中排除grails插件jar

时间:2017-09-05 23:24:38

标签: grails gradle build war

Grails 3.2.5。 Build.gradle有邮件插件:

compile "org.grails.plugins:mail:2.0.0.RC6"

在将战争部署到生产环境时,我需要从WEB-INF / lib中删除javax.mail-1.5.6.jar,因为在使用JNDI邮件资源时该jar必须位于Tomcat lib中。那么如何保留邮件插件,但从战争中删除有问题的jar文件?我知道如何在Grails 2.x中这样做。通过build.gradle中的gradle war任务,我试图排除文件(没有工作 - jar以某种方式从插件中漂移),并试图过滤掉文件。当我建立战争时,我得到两个文件 - " app-0.1.war"和" app-0.1.war.original"。 "原创"文件已经过滤掉了WEB-INF / lib / javax.mail jar,但真正的,完整的战争仍然存在。

那么如何防止插件jar进入war文件呢?感谢。

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是:

war {
    rootSpec.exclude '**/javax.mail*.jar'
}

(您可能需要调整,具体取决于您是否还要将javax.mail-api jar文件与javax.mail jar一起排除)

请参阅https://github.com/jeffbrown/excludejar/blob/67734ac0c65cdbead468f1e65bcfc29041cd2279/build.gradle#L70-L72