选择多个配置文件时未部署wildfly maven插件

选择多个配置文件时未部署wildfly maven插件,maven,deployment,wildfly,Maven,Deployment,Wildfly,我正在使用POM.xml将WAR文件部署到Wildfly服务器,具体取决于该环境已安装的应用程序。我处理的项目有3个不同的应用程序,一个环境中可能安装了1到3个这样的应用程序 因此,我为每个应用程序创建了配置文件——如果安装了应用程序A,请运行应用程序A配置文件,将应用程序A部署到服务器。如果安装了应用程序B,请运行应用程序B配置文件等 问题是,当我使用多个应用程序(例如,应用程序A和应用程序B)运行Maven build时,它只部署其中一个。如果我分别在每个概要文件上运行单独的Maven构建,

我正在使用POM.xml将WAR文件部署到Wildfly服务器,具体取决于该环境已安装的应用程序。我处理的项目有3个不同的应用程序,一个环境中可能安装了1到3个这样的应用程序

因此,我为每个应用程序创建了配置文件——如果安装了应用程序A,请运行应用程序A配置文件,将应用程序A部署到服务器。如果安装了应用程序B,请运行应用程序B配置文件等

问题是,当我使用多个应用程序(例如,应用程序A和应用程序B)运行Maven build时,它只部署其中一个。如果我分别在每个概要文件上运行单独的Maven构建,它就可以很好地部署。我认为我的问题在于maven wildfly插件本身,因为当运行多个配置文件时,它们在使用maven
help:active profiles
选项时显示为active:

[INFO] 
Active Profiles for Project 'com.foo.bar:auto-deploy:pom:1.0.0-SNAPSHOT': 

The following profiles are active:

 - wildfly-deploy-a (source: com.foo.bar:auto-deploy:1.0.0-SNAPSHOT)
 - wildfly-deploy-b (source: com.foo.bar:auto-deploy:1.0.0-SNAPSHOT)
构建本身的输出如下所示:

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Auto-Deploy Wildfly 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ auto-deploy ---
[INFO] Installing C:\..........\AutoDeploy\pom.xml to C:\.....\.m2\repository\com\foo\bar\auto-deploy\1.0.0-SNAPSHOT\auto-deploy-1.0.0-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ auto-deploy ---
[INFO] Skipping artifact deployment
[INFO] 
[INFO] --- wildfly-maven-plugin:1.1.0.Alpha11:deploy-artifact (deploy-a) @ auto-deploy ---
Apr 03, 2017 5:31:52 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.1.Final
Apr 03, 2017 5:31:52 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.1.Final
Apr 03, 2017 5:31:53 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.9.Final
[INFO] Authenticating against security realm: ManagementRealm
[INFO] 
[INFO] --- wildfly-maven-plugin:1.1.0.Alpha11:deploy-artifact (deploy-b) @ auto-deploy ---
[INFO] Authenticating against security realm: ManagementRealm
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.615 s
[INFO] Finished at: 2017-04-03T17:32:06-04:00
[INFO] Final Memory: 20M/210M
[INFO] ------------------------------------------------------------------------
我正在使用
mvndeploy-Pwildfly-deploy-a、wildfly-deploy-b
执行它。我将概要文件传递给Maven的顺序似乎并不重要——它总是部署POM中最后一个概要文件中定义的应用程序(所以应用程序b)。我还尝试了
mvn部署-Pwildfly-deploy-a-Pwildfly-deploy-b
,但这也不起作用

我是否违反了一些Maven最佳实践或其他什么?我今天所做的所有研究都表明,这应该是可行的,这就是为什么我有一个线索,插件导致了这种行为

编辑——我还尝试将其混合在一起,让一个配置文件使用
deploy
目标,另一个使用
deploy工件
目标,但我得到了相同的行为。这可能是网络或线程问题吗


编辑2——其他奇怪的行为:当两个配置文件都使用
deploy
目标而不是
deploy工件时,两个应用程序都不会被部署……当使用
deploy
单独运行时,它们会很好地部署。

您的插件配置无法合并;第二个将始终覆盖第一个

诀窍是将配置移动到执行部分:

<profiles>
    <profile>
        <id>wildfly-deploy-a</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>deploy-a</id>
                            <phase>deploy</phase>
                            <goals>
                                <goal>deploy-artifact</goal>
                            </goals>
                            <configuration>
                                <groupId>com.foo.bar</groupId>
                                <artifactId>app-a</artifactId>
                                <skip>false</skip>
                            </configuration>
                        </execution>
                    ...
    </profile>
    <profile>
        <id>wildfly-deploy-b</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>deploy-b</id>
                            <phase>deploy</phase>
                            <goals>
                                <goal>deploy-artifact</goal>
                            </goals>
                            <configuration>
                                <groupId>com.foo.bar</groupId>
                                <artifactId>app-b</artifactId>
                                <skip>false</skip>
                            </configuration>
                        </execution>
                    ...
    </profile>  
</profiles>

wildfly-deploy-a
org.wildfly.plugins
wildfly maven插件
部署-a
部署
部署工件
com.foo.bar
app-a
假的
...
wildfly-deploy-b
org.wildfly.plugins
wildfly maven插件
部署-b
部署
部署工件
com.foo.bar
app-b
假的
...

现在,每次执行都有自己的配置。

谢谢,这为我修复了它!现在正在将配置移动到任何Maven插件的执行块标准中(当使用概要文件时)?它独立于概要文件。实际上,您可以拆分配置,并将静态部分(例如
false
)放在您以前使用过的位置,然后将特定于执行的配置放在新位置。使用一些插件,您可能会在不同的阶段运行一系列执行。
<profiles>
    <profile>
        <id>wildfly-deploy-a</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>deploy-a</id>
                            <phase>deploy</phase>
                            <goals>
                                <goal>deploy-artifact</goal>
                            </goals>
                            <configuration>
                                <groupId>com.foo.bar</groupId>
                                <artifactId>app-a</artifactId>
                                <skip>false</skip>
                            </configuration>
                        </execution>
                    ...
    </profile>
    <profile>
        <id>wildfly-deploy-b</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>deploy-b</id>
                            <phase>deploy</phase>
                            <goals>
                                <goal>deploy-artifact</goal>
                            </goals>
                            <configuration>
                                <groupId>com.foo.bar</groupId>
                                <artifactId>app-b</artifactId>
                                <skip>false</skip>
                            </configuration>
                        </execution>
                    ...
    </profile>  
</profiles>