设置
插件的行为
该插件部署一个 XML 文件,该文件聚合列表并链接到所需的运行时 jar,而不是构建 EAR 文件 - 到目前为止,一切顺利,应用程序启动并运行。
问题
但是,项目中的某些依赖项存在冲突的传递依赖项,并且 pom.xml 包含大量排除项。不幸的是,这些排除被插件忽略,并且应用程序由于上述冲突(ClassNotFoundException 等)而遇到运行时问题。当然,如果将其放入 EAR 文件中,这些情况就不会发生。
问题
要回答您问题的一部分,您可以配置 liberty-maven-plugin 来部署完整的二进制存档(WAR 或 EAR),而不是通过
liberty-maven- 上的
<looseApplication>false</looseApplication
参数使用 XML 定义的表示形式插件配置:
<build>
<plugins>
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.9</version>
<configuration>
<looseApplication>true</looseApplication>
...
这对于迭代开发来说不太方便,因为您必须进行完整的“打包”,然后进行另一个“部署”,而不仅仅是进行另一个“编译”,但这将是解决您发现的问题的一种方法.
至于 liberty-maven-plugin 在构建松散应用程序 XML 文件时不处理排除的问题,我建议在 liberty-maven-plugin GitHub 存储库中提出一个问题 (https://github.com/OpenLiberty/ ci.maven/),当我们有一个时我会更新它。