Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在tomcat中使用公共JAR创建slim grails war文件?_Tomcat_Grails_Grails 2.2 - Fatal编程技术网

在tomcat中使用公共JAR创建slim grails war文件?

在tomcat中使用公共JAR创建slim grails war文件?,tomcat,grails,grails-2.2,Tomcat,Grails,Grails 2.2,生成的带有所有默认JAR的grails war文件大约为30 mb。我需要减少这个大小,以便频繁地将测试部署到远程tomcat容器。所以我尝试使用常见的libs-tomcat技术。由于某种原因,该过程不起作用 以下是我正在采取的步骤 1) 首先,我将所有jar文件从web inf/lib目录复制到服务器的公共目录,如下所示 下面是/var/lib/tomcat7/conf/catalina.properties common.loader配置 2) 然后,我按照如下方式配置grails配置

生成的带有所有默认JAR的grails war文件大约为30 mb。我需要减少这个大小,以便频繁地将测试部署到远程tomcat容器。所以我尝试使用常见的libs-tomcat技术。由于某种原因,该过程不起作用

以下是我正在采取的步骤

1) 首先,我将所有jar文件从web inf/lib目录复制到服务器的公共目录,如下所示

下面是/var/lib/tomcat7/conf/catalina.properties common.loader配置

2) 然后,我按照如下方式配置grails配置

3) 然后,我使用>grails war--nojars创建战争

生成的war文件为6.42 mb

4) 然后我将war文件复制到tomcat webapps目录

5) 当我访问webapp时,我得到“页面找不到404错误”

我感谢任何关于我做错了什么的帮助。谢谢

更新:

下面是在catalina.out中记录的错误。应用程序是nojars


你最好的办法是限制依赖关系;这只能通过build.gradle文件AFAIK完成。只保留你需要的东西

如果您知道插件由另一个依赖项提供,请使用“提供”

provided 'org.grails.plugins:cache:4.0.0'
compile "org.grails.plugins:async"
provided "org.grails:grails-logging"
provided "org.grails:grails-plugin-i18n"
另外,切掉double包括(如groovy all)和其他您不需要的馅饼:

provided 'org.codehaus.gpars:gpars:1.2.1', {
    exclude group:'org.multiverse', module:'multiverse-core'
    exclude group:'org.codehaus.groovy', module: 'groovy-all'
}

明确声明gradle.build中需要的部分,并排除不需要的部分。你必须对构建更为明智。

如果没有更多的信息,很难说缺少了什么,而不仅仅是知道你得到了404。如果查看服务器日志,您可能会发现正在记录
ClassNotFoundException
noclassdefounderror
,如果是,这些消息将指示找不到哪个类。@JeffScottBrown谢谢!我已经用catalina.out中记录的错误截图更新了上面的帖子。它说错误监听器启动。你知道那是什么意思吗?谢谢@杰夫斯科特布朗我想我会用詹金斯的,那会更快。谢谢“特别声明您在gradle.build中需要的部分”-我认为这是一个Grails2.2应用程序。可以使用Gradle来构建Grails 2.2应用程序,但默认情况下我们没有提供这种支持,问题并不表明他们正在使用Gradle。“生成的Grails war文件和所有默认JAR大约有30 mb。我需要减小此大小”。。。Gradle就是这样做的。你有更好的方法吗,杰夫?