草庐IT

java - 当 WAR 的大小为 41M 时,如何避免在 WAR 中复制 40M 的 java 库?

目前我的构建过程包括在WEB-INF/lib下使用所有必需的java库重新打包war文件,然后将war文件复制到开发/演示/生产服务器以由tomcat重新部署。打包后的war文件大小约为41M,目前有大约40M的外部java库。一定有更好的方法。你是如何解决这个问题的?我的开发机器是一个Windows盒子,Eclipse作为我的IDE,Ant作为我的构建工具。服务器都是装有Tomcat5.5的linux机器。我是否应该将jar文件添加到服务器端的war包中? 最佳答案 我明白你在说什么,并且对我们的一些网络应用程序也有同样的挫败感,

java - 为什么没有将 WAR 文件导入 Eclipse 的选项?

我有一个用于Java项目的WAR文件,但是当我尝试将它导入Eclipse时,唯一的选择是归档文件,例如tar、zip、jar-没有用于war。这是否只是某些版本的Eclipse中的一个选项,因为我有一个允许我导入WAR文件的SpringSource(也是基于Eclipse的)副本?是否可以在不下载新版本Eclipse的情况下将此选项添加到我的当前版本? 最佳答案 您的Eclipse版本是面向Java开发人员的EclipseIDE。尝试下载面向JavaEE开发人员的EclipseIDE您的Eclipse版本没有Web树Pane。

java - Spring-Boot 在 WAR 文件中找不到 JSP 页面

运行spring-boot项目时(java-jar/path/to/war.war)找不到.jsp文件。用@ResponseBody注释的方法工作正常。View解析器正在提供JSP页面的正确路径,但找不到它们。本项目只有一个配置类,没有web.xml。配置类:@Configuration@EnableAutoConfiguration@EnableWebMvc@ComponentScan(basePackages="org.ghc.security.web")classScMainextendsWebMvcConfigurerAdapter{//SpringBootBootStrap.

java - 马文 2 : How to package current project version in a WAR file?

我正在使用Maven2构建我的Java项目,我正在寻找一种方法来向用户显示pom.xml的当前版本号(例如使用Servlet或JSP)。据我所知,最好的方法是Maven将版本号作为文本文件打包到WAR中。这允许我从该文件中读取版本并以我想要的方式呈现它。有人知道可以为我做类似事情的插件吗?也许可以配置WAR插件来这样做?或者一起使用其他一些方法? 最佳答案 我以不同的方式解决了这个问题,因为我希望在服务的索引页面上显示版本、svn修订版等。我使用buildnumber-maven-plugin和war-plugin将值存储在list

java - 自动实例化一个新部署的war文件中的类

假设我想确保该类在部署到它所在的war的Tomcat中时被实例化。例如,一个类有一个静态初始化程序,它启动一个线程,该线程定期打印CPU使用率。我需要这个类在Tomcat一加载war就开始监控。有没有一种方法可以做到这一点,而不必调用具有此类引用的Servlet,以便ClassLoader加载它并执行静态初始化程序? 最佳答案 如commentabove中所述,您可以使用servlet上下文监听器来完成这项工作。Thisanswer展示了如何实现该类。 关于java-自动实例化一个新部署

java - Spring Web Reactive 不能作为部署在 Tomcat 8.5 上的 war 文件工作

我有提供一些RESTAPI的SpringBoot(2.0.0M5)应用程序。我想使用RouterFunction实现这个API。当我使用嵌入式Jetty运行应用程序时,一切正常。当我将应用程序转换为WAR文件(在documentationhere之后)并将其部署到Tomcat8.5时,我在尝试调用任何端点时总是得到404。我可以在日志中看到端点已被识别:[ost-startStop-1]s.w.r.r.m.a.RequestMappingHandlerMapping:Mapped"{[/say-hello],methods=[GET]}"ontojava.lang.Stringcom.

java - IntelliJ 从爆炸 war 中排除文件夹

我们在IntelliJ(Ultimate14.1.14)中有一个javaweb项目,我们想从爆炸war中排除某个文件夹。使用maven配置文件,我们创建的文件夹被排除在生成的war文件之外,但是当使用IntelliJ运行项目时,我们也需要在explodedwar中排除它。项目的运行配置:Project'srunconfiguration我们尝试了不同的方法,例如在ProjectStructure>Modules窗口中以及在Settings>Build,Execution,Development>Compiler>Excludes中将文件夹标记为已排除,但没有任何效果。有人知道我们该怎么

java - Eclipse 和 maven-war-plugin 爆炸式增长

我正在用Eclipse碰砖。我会尽力解释。我正在开发一个“滥用”maven覆盖的项目,并且有许多模块在webapp中包含Javascript和LESS文件。我们设法配置maven以分解对maven-frontend-plugin将处理的目录的依赖项(使用nodejs)以生成最终编译的JS和CSS文件。当我使用纯maven时,它工作得很好。但是,在Eclipse上,这并不能正常工作。主要原因是Eclipsesimple忽略了maven-war-plugin的执行配置,导致依赖爆炸。相反,它简单地执行默认的maven-war-plugin:explode。我需要修复它,这是获得现代前端开发

java - 包装一个游戏!应用程序直接进入 WAR

我正在使用Play的war命令将我的应用程序打包成一个WAR文件以进行部署,如下所示:playwarmydir-omyapp--zip(Discovering--zip确实为我节省了很多时间!)这个命令创建了一个WAR文件myapp.war就像它应该的那样,并且还在目录中创建了WAR的展开版本我的应用程序/。我更改了我的目录名称以避免混淆,但我通常希望WAR文件与我的应用程序目录同名(mydir,在本例中)。playwarmydir-omydir--zip当然失败了,而不是覆盖我的应用程序目录,这很好。在这种情况下,我想玩!跳过目录位,直接将我的应用程序放入WAR文件中。其实,不管名称

java - 在 Intellij 中,当我在本地运行 Google App Engine 时,为什么必须清理和构建 war 才能看到变化?

我正在使用googleappengine建立war,我注意到每当我进行本地更改时,当我在本地运行时它们永远不会应用。我发现要查看我所做的更改的唯一方法是运行mvnclean,然后生成,然后构建Artifact,然后部署。这是显示我的配置的屏幕截图:如果我遗漏了这些步骤中的任何一个,重新启动服务器不会显示我所做的任何更改。我以前用intellij制作过很多非谷歌应用引擎的网络应用程序,我通常不必这样做。我怎样才能避免所有这些步骤?它们大大增加了重新启动服务器所需的时间。如果有帮助,这是我的pom.xml文件:4.0.0war1.0-SNAPSHOTcom.myappmyapp11.8.6