首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从WebSphere自由/开放自由Maven WAR项目构建可运行的JAR?

如何从WebSphere自由/开放自由Maven WAR项目构建可运行的JAR?
EN

Stack Overflow用户
提问于 2021-04-09 20:17:45
回答 1查看 605关注 0票数 1

我想从我的Maven WAR项目中使用Open构建一个可运行/可执行的JAR (要使用java -jar my.jar运行)。

如果我运行mvn package,就会遇到一场战争,但如果我运行mvn liberty:package,就会得到如下内容:

代码语言:javascript
复制
[INFO] CWWKM2001I: Invoke command is ["C:\git\lmparch1\test\target\liberty\wlp\bin\server.bat", package, defaultServer, --archive="C:\git\lmparch1\test\target\test.jar", --include=runnable].
[INFO] CWWKE0005E: The runtime environment could not be launched.
[INFO] CWWKE0031E: Specified defaultServer server does not exist; use the create action to create a new server. serverPath: C:\git\lmparch1\test\target\liberty\wlp\usr\servers\defaultServer
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  20.531 s
[INFO] Finished at: 2021-04-09T15:32:01-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.openliberty.tools:liberty-maven-plugin:3.3.4:package (default-cli) on project test: CWWKM2002E: Failed to invoke ["C:\git\lmparch1\test\target\liberty\wlp\bin\server.bat", package, defaultServer, --archive="C:\git\lmparch1\test\target\test.jar", --include=runnable]. RC= 2 but expected=[0]. -> [Help 1]

我应该配置哪些目标,并将其绑定到哪个阶段,等等?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-09 20:17:45

答案取决于您是否使用liberty-maven-app-parent来设置您的生命周期(或者类似地将目标绑定到您自己的阶段),而不是使用更接近内置war生命周期绑定的东西(没有所有额外的“自由”插件目标绑定)。

使用自由Maven应用程序父(或类似)

首先,如果您使用的是工具:parent maven-app-parent,例如使用自由-原型-网络应用_生成,那么只需使用它作为您的自由-maven-插件配置:

代码语言:javascript
复制
    <plugin>
        <groupId>io.openliberty.tools</groupId>
        <artifactId>liberty-maven-plugin</artifactId>
        <version>3.3.4</version>
        <configuration>
            <include>minify,runnable</include>

然后做mvn package

您将看到可运行的JAR创建如下:target/xyz.jar

交互使用通用WAR项目

最简单的方法是让开发模式安装自由并打包并部署WAR,然后Ctrl+C取消它来打包可运行的JAR。

  1. 运行mvn liberty:dev启动“开发模式”并等待服务器安装和应用程序部署
  2. 当开发模式完成启动时,输入<Ctrl+C> (当您看到Free正以dev模式运行,或者一旦您看到应用程序启动了CWWKT0016I应用程序可用消息)。
  3. 运行mvn liberty:package -Dinclude=minify,runnable以生成可运行的JAR (类似于:mvn liberty:package -Dinclude=minify,runnable)

在CI env中使用通用WAR项目(例如,构建管道)

如果您以非交互方式运行,而发出Ctrl+C并不容易,您可以这样做。

mvn package liberty:create liberty:install-feature liberty:deploy liberty:package -Dinclude=minify,runnable

我们已经打开了本期来考虑改进这个用例。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67027768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档