gpt4 book ai didi

Maven 插件生成可执行的 web 应用程序 (war->executable jar-war)

转载 作者:行者123 更新时间:2023-12-04 23:05:10 24 4
gpt4 key购买 nike

我有一个生成 .war 文件的 Maven 项目。
我想配置 maven 以生成一个可执行 jar,它嵌入了一个 servlet 容器(jetty、tomcat 或其他)以及我的 war 应用程序,并生成一个可执行 jar,它可以使用如下命令运行我的 web 应用程序:

java -jar mywebapp.war
有没有maven插件来获得这样的神器?
目前我正在使用 jetty-runner运行我的应用程序的测试版本,它对测试来说非常令人满意,但对于重新分发来说并不像可执行 war 那样方便(如在 jenkins 中)。
更新
@jesse-mcconnell:我不想更改 Web 应用程序中的任何一行(pom.xml 中除外)来实现结果。只需以不同的方式打包我的 war ,并使其可部署在选择的应用程序服务器下,并能够将其作为可执行 war 运行。
一个完美的解决方案还应该让我能够选择要嵌入的应用程序服务器,还可以指定包含在可执行 war 本身中的所有需要​​的配置文件。
@khmarbaise:我知道 jenkins,我很久以前就已经检查过代码了,它使用了 winstone servlet 容器,并将 Main.class 放在了可以从 http 访问的 war 中(我认为这是错误的)
一个完美的解决方案可能会引发一场包含以下内容的 war :
├── META-INF 
│ └── MANIFEST.MF (Main-Class: WEB-INF.container.classes.Main)
└── WEB-INF
   ├── web.xml
   ├── classes
   ├── lib
└── container
├── lib (jetty.jar/tomcat.jar/whatever.jar)
   ├── etc (configuration files for the container)
└── classes
└── Main.class
  • Main.class 应该使用 etc 配置作为默认配置,但能够覆盖命令行(端口、上下文等)中的通用参数或指定新配置。
  • Main.class 应该能够从容器内部加载容器 jar 和配置(或提取到 tmp.dir)并启动应用程序服务器。

  • 这就是我要做的。
    最后,您有一个正常的 war ,可以部署在任何应用程序服务器中,并且能够以独立的方式运行。

    最佳答案

    Tomcat Maven 插件可以在这里查看 http://tomcat.apache.org/maven-plugin-2.0/executable-war-jar.html

    HTH

    关于Maven 插件生成可执行的 web 应用程序 (war->executable jar-war),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183405/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com