Maven wildfly-maven-plugin自定义standalone.xml

时间:2015-03-18 09:37:04

标签: java maven jenkins jboss wildfly

运行wildfly-maven-plugin时如何使用自定义standalone.xml:start(不只是添加数据源,驱动程序......)?

使用wildfly-maven-plugin-1.0.2.Final:

<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.2.Final</version>
...
<execution>
    <id>pre-integration-phase</id>
    <phase>pre-integration-test</phase>
    <goals>
        <goal>start</goal>
        <goal>deploy</goal>
    </goals>
</execution>
...

我尝试使用maven-resources-plugin在wildfly配置文件夹中复制资源(standalone.xml),但似乎 wildfly:start 覆盖并删除Wildfly中的每个(其他)文件(配置)目录。

此任务用于jenkins集成测试,这就是为什么我需要在测试正在进行时运行jboss。

1 个答案:

答案 0 :(得分:7)

您可以解压缩WildFly安装,然后在wildfly-maven-plugin中设置jbossHome配置元素。

示例配置:

    <version.wildfly>8.2.0.Final</version.wildfly>
    <jboss.home>${project.build.directory}/wildfly-${version.wildfly}</jboss.home>
    <server.config>standalone.xml</server.config>


        <!-- Unpack the distribution -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-wildfly</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <inherited>false</inherited>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>org.wildfly</groupId>
                                <artifactId>wildfly-dist</artifactId>
                                <version>${version.wildfly}</version>
                                <type>zip</type>
                                <overWrite>false</overWrite>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!-- Copy server configuration -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${version.plugin.resources}</version>
            <executions>
                <execution>
                    <id>copy-standalone-xml</id>
                    <phase>generate-test-sources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${jboss.home}/standalone/configuration</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!-- WildFly plugin to deploy war -->
        <plugin>
            <groupId>org.wildfly.plugins</groupId>
            <artifactId>wildfly-maven-plugin</artifactId>
            <version>${version.wildfly.maven.plugin}</version>
            <configuration>
                <jbossHome>${jboss.home}</jbossHome>
                <serverConfig>${server.config}</serverConfig>
            </configuration>
            <executions>
                <execution>
                    <id>pre-integration-phase</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>start</goal>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>