具有多台服务器的Maven Wildfly部署(独立)

时间:2018-08-21 13:27:11

标签: maven wildfly build-helper-maven-plugin wildfly-maven-plugin

在我的环境中,我有两个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。有谁知道我如何在两台服务器上使用该插件进行部署?

谢谢, 马库斯

我尝试的方法:

1 个答案:

答案 0 :(得分:2)

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

<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