在具有 Open Liberty Dev 模式的 Maven 项目中使用本地库

问题描述 投票:0回答:1

我有一个 Maven 项目,它构建了一个部署到 Open Liberty 的战争。我正在使用 Liberty maven 插件:

<plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.9</version>
    <!-- Specify configuration, executions for liberty-maven-plugin -->
</plugin>

我正在利用开发模式并且它运行良好。但是,我想在 Dev 模式下使用本地 jar 文件库。

我期望我能够将 jar 文件放置在项目中的特定位置,并且 Liberty 开发模式会自动拾取它们 - 类似于自动拾取

server.xml
的方式
src/main/liberty/config
。我的
server.xml
设置为在此处查找库:
${shared.config.dir}/lib/global
,因此我尝试将罐子放入
src/main/liberty/shared/config/lib/global
中,但这不起作用。

我看到的另一种选择是使用 Libity 插件的

copyDependencies
配置。

有一些推荐的方法可以实现我想做的事情吗?理想情况下,我想要最简单的解决方案,既适用于 liberty dev 模式,也适用于 vanilla maven 构建 (

mvn package
)。

这里的类似问题利用了

copyDependencies
配置,但具体来说,我正在寻找本地 jar 的最佳解决方案(是的,我可以使用系统范围的 Maven 坐标或在本地安装 jar) 如何在 Maven 构建期间将外部依赖项复制到 Open Liberty

谢谢

java open-liberty
1个回答
0
投票

好问题,稍微概括一下问题,您可能可以使用三种方法:

1.使用资源插件

    <build>
        <resources>
            <!-- Explicitly configure the default too -->
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
            </resource>
            <!-- Custom library -->
            <resource>
                <directory>${project.basedir}/mylib</directory>
                <targetPath>${project.build.directory}/liberty/wlp/usr/shared/lib/global</targetPath>
                <!-- Default, but just emphasizing the point -->
                <filtering>false</filtering>
            </resource>
        </resources>

由于开发模式在其“生命周期”中调用

resources:resources
目标,因此可以在没有任何插件配置的情况下进行配置(使用“/project/build/resources”(在 XPath 术语中)元素),并使用您的
<targetPath>
可以复制到任何位置。

2.添加到config目录(src/main/liberty/config)

除了

src/main/liberty/config/server.xml
处的主服务器XML配置文件之外,您还可以将其他文件和目录放在那里,所有文件和目录都将通过开发模式复制过来。

所以你可以创建,例如

src/main/liberty/config/mylib/my.jar
,它会被复制到
target/liberty/wlp/usr/servers/defaultServer/mylib/my.jar
。然后,您可以从
server.xml
将此位置引用为相对于服务器配置目录的
"mylib/my.jar"

(这不太适合要求复制到“.../shared/lib/global”的原始用例,但可能适合其他查看此问题的人)。

3.添加系统范围的依赖项

这在原来的问题中已经提到过。我不太喜欢这个解决方案。为了完整起见,我会提及它,但请您自行查找详细信息。 可能会很有趣。

© www.soinside.com 2019 - 2024. All rights reserved.