当前位置: 首页 > 知识库问答 >
问题:

如何部署一个战争在码头嵌入式服务器运行到一个可执行罐?

狄睿
2023-03-14

我想部署一个war文件,我们称之为应用程序。战争,在嵌入的码头上。

所以最简单的代码是:

new WebAppContext(server, path, "/");

路径最终类似于“/dist/app.war”。当从Eclipse运行时,它就像一个符咒,但是当我想从我的项目的一个可运行的jar中做同样的事情时,情况会变得更糟。

即使jar架构很好:

  • META-INF

找不到该文件。我知道标准路径在运行jar文件时不一致,但尝试使用"jar: file:.../project.jar!/dist/app.jar“做得更好。这个问题有什么解决办法吗?谢谢你!

共有1个答案

狄宗清
2023-03-14

我将使用uber插件制作可执行jar。使用maven,您只需添加

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <finalName>uber-${artifactId}-${version}</finalName>
            </configuration>
        </plugin>

检查这里http://maven.apache.org/plugins/maven-shade-plugin/这将创建包含所有资源、类和依赖项的完全自包含的jar

 类似资料:
  • 假设我有一个Spring引导Web应用程序 - 它可以通过gradle(嵌入式tomcat)运行。但是我也需要它能够以标准方式将战争部署到应用程序服务器中。应如何配置应用?标准 web.xml以及 xml 配置? 目前我有这样的东西: 公共类MyApplication扩展了SpringBootServletLaunalizer{ } 这是1:1映射到web.xml。是否有可能在没有Web.xml的

  • 我有一个spark作业,它从数据库中读取数据,执行过滤、联合、2连接,最后将结果写回数据库。 然而,最后一个阶段仅在50个执行器中的一个执行器上运行一个任务。我试图增加分区的数量,使用哈希分区,但没有成功。 经过几个小时的谷歌搜索,似乎我的数据可能会但我不知道如何解决它。 有什么建议吗? 规格: < li >独立群集 < li>120核心 < li>400G内存 遗嘱 执行 人: 30个执行器(4

  • 我正在尝试将一个简单的JSF“hello world”应用程序部署到Jetty 9.3.11,并出现以下错误: war文件包含路径WEB-INF/lib/javax。面-2.2.1。jar有什么问题吗?

  • 我目前的目标是让gradle在我的机器上的Jetty实例中启动我的web应用程序,这样我就可以针对它编写Selenium测试。Gretty插件似乎正在加载,但我还没有找到任何关于如何创建和配置任务的实际说明。 部分问题是Gretty插件的不同版本和版本存在混淆。首先加载它是一个反复试验的过程。 我正在尝试使用Gradle 5.4.1和Gretty 2.3.1,我相信这是当前的版本(目前)。 我有三

  • 1984年1月,Richard Stallman 辞去了 MIT 的工作,他担心 MIT 会要求产品的所有权,会给产品强加入自己的销售条件,最终又会成为专有软件。一开始, GNU 计划只有他一个人。他发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。久而久之,白天他也跑去用实验室里的电脑。 当时人工智能实验室主任 PatrickH. Winston 并不干涉。因为

  • 我正在从事一个spring boot项目,以自动化与gradle的集成测试。我最近开始在一家新企业工作,我的同事们按如下方式运行集成测试:在构建中。gradle文件有一个集成测试任务 启动任务后,应用程序开始在指定端口运行,然后打开postman,导入集合并运行测试。 我的工作是找到一种方法来跳过额外的点击,即自动运行邮递员集合。第一个想法是使用postman-run gradle插件,但由于企业