如何使用 liberty-maven-plugin 重新部署工件?

How to redeploy artifact with liberty-maven-plugin?

我的机器上有 IBM Liberty 服务器 运行,我想使用相应的 maven 插件重新部署我的 WAR。

文档说有 deployundeployinstall-apps 等目标。目前我正在使用

<plugin>
    <groupId>com.ibm.websphere.wlp.maven.plugins</groupId>
    <artifactId>liberty-maven-plugin</artifactId> 
    <version>1.1</version>
    <executions>
        <execution>
            <id>install-apps</id>
            <phase>install</phase>
            <goals>
                <goal>install-apps</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <serverHome>c:/my-liberty-instance</serverHome>
        <serverName>myServerName</serverName>
    </configuration>
</plugin> 

但这对我不利,因为它需要之前停止服务器实例。如果它是 运行 - 部署了一个新的 WAR (它取代了旧的)但没有赶上新的变化。

我尝试使用 deploy 目标,但是一旦它将 WAR 复制到 dropins 目录 - 它开始搜索一些 console.log 文件中的某些行指示应用程序是否已启动并失败。

undeploy 目标示例:CWWKM2022E: Failed to undeploy application app-1.0-SNAPSHOT.war. The Stop application message cannot be found in console.log. 但是 deploystop-server 会出现相同的消息。

有没有一种方便的方法可以使用 liberty-maven-plugin 重新部署 WAR 而无需重新启动服务器? 我只想构建一个新的 WAR - 部署它;希望服务器赶上变化,仅此而已。

您可以使用 install-apps 目标来安装项目 war 文件,而无需停止 liberty 服务器实例。但是你需要使用 liberty-maven-plugin 版本 1.3 or above,并且还要在插件配置中包含 <installAppPackages>project</installAppPackages>

<plugin>
    <groupId>net.wasdev.wlp.maven.plugins</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
        <execution>
            <id>install-apps</id>
            <phase>install</phase>
            <goals>
                <goal>install-apps</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <installDirectory>c:/my-liberty-instance</installDirectory>
        <serverName>myServerName</serverName>
        <installAppPackages>project</installAppPackages>
    </configuration>
</plugin>