OpenLiberty Maven插件部署EAR项目:依赖排除被忽略问题咨询
解决方案:OpenLiberty Maven插件依赖排除与EAR部署问题
针对问题1:让*.ear.xml包含pom中的依赖排除规则
- 升级插件版本:旧版
liberty-maven-plugin可能存在依赖解析bug,无法识别pom里的排除规则。直接在pom.xml中更新到最新稳定版:
<plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <version>最新稳定版</version> </plugin>
- 插件内显式配置依赖排除:在插件的
<configuration>节点下添加<dependencies>,手动复刻pom里的排除规则,确保插件解析依赖时生效:
<plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <configuration> <dependencies> <dependency> <groupId>你的依赖groupId</groupId> <artifactId>你的依赖artifactId</artifactId> <exclusions> <exclusion> <groupId>冲突依赖groupId</groupId> <artifactId>冲突依赖artifactId</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </configuration> </plugin>
- 用DependencyManagement统一管控:在项目根pom的
<dependencyManagement>中定义所有依赖的版本和排除规则,插件会自动继承这些配置,避免重复设置。
针对问题2:强制插件构建并使用EAR构件
- 指定已构建的EAR文件:先通过
maven-ear-plugin生成EAR包,再在liberty-maven-plugin中配置<earFile>指向构建产物:
<!-- 配置maven-ear-plugin构建EAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.3.0</version> <configuration> <!-- 你的EAR打包配置 --> </configuration> </plugin> <!-- 配置Liberty插件部署EAR --> <plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <configuration> <earFile>${project.build.directory}/${project.build.finalName}.ear</earFile> <deployPackages>none</deployPackages> <!-- 禁用自动依赖打包逻辑 --> </configuration> </plugin>
- 绑定插件到打包阶段:让插件在
package阶段自动部署已生成的EAR,无需手动分步执行:
<plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> <configuration> <earFile>${project.build.directory}/${project.build.finalName}.ear</earFile> </configuration> </plugin>
- 强制部署类型为EAR:在插件配置中设置
<deploy>的<type>为ear,直接跳过自动生成XML的逻辑:
<plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <configuration> <deploy> <type>ear</type> </deploy> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者Pawel Os.
相关产品推荐
相关产品推荐

