grails - 如何从War文件中排除Grails插件jar

标签 grails gradle build war

Cereal 3.2.5。 Build.gradle具有邮件插件:

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

在向生产环境部署 war 时,我需要从WEB-INF / lib中删除javax.mail-1.5.6.jar,因为使用JNDI邮件资源时,该jar必须位于Tomcat lib中。那么,如何保留邮件插件,但从 war 中删除有问题的jar文件呢?我知道如何在Grails 2.x中做到这一点。通过build.gradle中的gradle war任务,我试图排除文件(不起作用-jar从某种程度上从插件中移入),并试图将文件过滤掉。建立 war 时,我得到两个文件-“app-0.1.war”和“app-0.1.war.original”。 “原始”文件已过滤掉了WEB-INF / lib / javax.mail jar,但真正的完整 war 仍然存在。

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

最佳答案

一种方法是使用类似以下的方法:

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

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

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

关于grails - 如何从War文件中排除Grails插件jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46064627/

相关文章:

java - 构建项目时实现新依赖项时,在模块classes.jar中发现重复的类

Android 应用程序模块中 JUnit 测试中的类的 java.lang.ClassNotFoundException

android - 如何以编程方式读取我的 Android apk 的构建日期?

rest - 向 Grails restfulcontroller 添加功能

oop - Grails:当我不想保存任何东西时,我可以使用域对象吗?

在 grails 中作为 map 值列出

java - Java Android应用程序打开后迅速关闭

windows - qmake "system"命令总是返回成功代码

c - VPATH 构建中未考虑 EXTRA_DIST

apache - 安装插件后Grails Apache中断了吗?