首页 文章

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

提问于
浏览
0

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

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

如果我使用jboss-cli.sh/bat部署它,它可以正常工作:PostgreSQL驱动程序将显示为部署 .

尝试:

部署src / main / archive.cli

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

尝试:

mvn验证

我的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 . 我尝试过使用部署工件,Win / Linux,WildFly 8-10 ......我可以配置wildfly-maven-plugin并告诉它扩展工件吗?一个例子将不胜感激 .

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

可以下载简单示例Maven项目here

谢谢,

1 回答

  • 1

    我相信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上对我来说很好 .

相关问题