0

在我的环境中,我有两个 Wildfly 服务器,我想在其中使用 wildfly-maven-plugin 进行部署。

服务器名称 dev01 和 dev02 不同,但端口 9993 和用户名和密码相同。

我的理解是 wildfly-maven-plugin 仅支持单服务器部署。

如果问题不够大,我们会使用模块/子模块结构,war 文件将构建在子模块中。

我正在使用两个配置文件 wildfly-deploy-dev01 和 wildfly-deploy-dev02。

<profiles>
    <profile>
        <id>wildfly-deploy-dev01</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>install</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                            <configuration>
                                <skip>true</skip>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

    <profile>
        <id>wildfly-deploy-dev02</id>
        <build>
        [...]
<profiles>

在主模块中,我跳过了它。

在战争子模块中:

    <profiles>
    <profile>
        <id>wildfly-deploy-dev01</id>
        <build>
            <finalName>${project.artifactId}-v1.0</finalName>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <configuration>
                        <skip>false</skip>
                        <id>wildfly-credentials<id>
                        <hostname>dev01.example.com</hostname>
                        <protocol>remote+https</protocol>
                        <port>9993</port>
                     </configuration>
                    <executions>
                        <execution>
                            <phase>install</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
     <profile>
        <id>wildfly-deploy-dev01</id>
        <build>
          [same as above for hostname dev02.example.com]
 </profiles>

首先我认为一切都很好,但后来我发现只有最后一个服务器会被部署。

mvn wildfly:deploy -P wildfly-deploy-dev01,wildfly-deploy-dev02

我在执行标签之后设置了配置,但没有成功。看起来第二个配置文件会覆盖第一个配置文件。

此外,我对最终名称进行了硬编码,因为未解析 parsedVersion。

<finalName>${project.artifactId}-v${parsedVersion.majorVersion}.${parsedVersion.minorVersion}</finalName>

目前我迷失了Maven。有人知道如何在两台服务器上使用插件部署吗?

谢谢,马库斯

我尝试过的方法:

4

1 回答 1

3

您应该能够在具有不同执行的单个配置文件中执行此操作。不需要多个配置文件。

<profiles>
    <profile>
        <id>wildfly-deploy</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <configuration>
                        <skip>false</skip>
                        <id>wildfly-credentials<id>
                        <protocol>remote+https</protocol>
                        <port>9993</port>
                     </configuration>
                    <executions>
                        <execution>
                            <id>deploy-dev1</id>
                            <phase>install</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                            <configuration>
                                <hostname>dev01.example.com</hostname>
                            </configuration>
                        </execution>
                        <execution>
                            <id>deploy-dev2</id>
                            <phase>install</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                            <configuration>
                                <hostname>dev02.example.com</hostname>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
<profiles>

有了这个,你只需要这样做mvn clean install -Pwildfly-deploy

于 2018-08-22T16:55:41.793 回答