可以使用 Maven 插件在 WildFly 上部署 CLI 存档吗?

Can CLI archives be deployed on WildFly using Maven plugin?

如何在 WildFly (8-10) 中使用 wildfly-maven-plugin 部署 CLI 存档(压缩)?

我创建了一个 simple example:一个带有 archive.cli 文件的 Maven 项目。此存档将部署 PostgreSQL jdbc 驱动程序。

如果我使用 jboss-cli.sh/bat 部署它,它会按预期工作:PostgreSQL 驱动程序将显示为部署。

尝试:

deploy src/main/archive.cli

如果我使用 maven-wildfly-plugin 部署它,WildFly 将部署文件但不会 unzip/expand 它 - 我有一个无用的 archive.cli 文件作为部署,但没有安装的驱动程序。为什么?

尝试:

mvn validate

我的 pom.xml 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <name>deploy-archive-cli</name>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.foo</groupId>
    <artifactId>deploy-archive-cli</artifactId>
    <version>1</version>
    <packaging>pom</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>1.2.1.Final</version> 
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>deploy</goal>
                        </goals>
                        <configuration>
                            <filename>archive.cli</filename>
                            <targetDir>src/main/</targetDir>
                            <skip>false</skip>
                            <checkPackaging>false</checkPackaging>
                        </configuration>
                    </execution>                
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

项目结构如下所示:

.
├── pom.xml
└── src
    └── main
        ├── archive
        │   ├── deploy.scr
        │   ├── postgresql-42.2.1.jar
        │   └── undeploy.scr
        └── archive.cli

Java8。我试过使用 deploy-artifact、Win/Linux、WildFly 8-10...我可以配置 wildfly-maven-plugin 并告诉它扩展工件吗?一个例子将不胜感激。

我知道替代方案是使用 Maven 或 运行 jboss-cli 部署 EAR/WAR/JAR 工件,但这是一个 IT 部门想要处理它的方式。应该可以吧?

简单示例Maven工程可以下载here

谢谢,

延斯

我认为 CLI 部署是 CLI 的一部分,不会由正常的部署操作处理。但是在 maven 插件中你可以执行 CLI 命令。

对于您的示例,pom 配置如下所示。

<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>1.2.1.Final</version> 
    <executions>
        <execution>
            <phase>validate</phase>
            <goals>
                <goal>execute-commands</goal>
            </goals>
            <configuration>
                <commands>
                    <command>deploy --path=${project.basedir}/src/main/archive.cli</command> 
                </commands>
            </configuration>
        </execution>                
    </executions>
</plugin>

需要注意的一件事是在测试时我发现 WFMP-94。如果您使用 Java 1.8.0_161,您可能会 运行 进入此错误。它在 Oracle JDK 1.8 上对我来说运行良好。0_151 然而。