使用cargo maven插件启动服务器而不进行工件部署

时间:2015-04-08 22:37:20

标签: maven maven-cargo cargo-maven2-plugin

我试图使用货物maven插件只是从maven启动JBoss AS 7服务器,而不执行任何部署。

我能够启动服务器但是因为我可以读取货物插入documentation目标货物:运行和货物:如果项目的包装是Java,start将自动部署当前项目EE(WAR,EAR等),如果我没有在插件配置中使用可部署的部分。

这是我在pom文件中的简单货物插件部分:

<plugins>
    ...
    <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.4.13</version>
        <configuration>

            <!-- Container configuration -->
            <container>
                <containerId>jboss73x</containerId>
                <home>${jboss-as.home}</home>
            </container>

        </configuration>
    </plugin>
    ...
</plugins>

由于我没有使用可部署资源且项目打包是战争,因此货物会在服务器启动时自动部署我的项目。

我想使用目标货物:运行只是为了启动我的本地服务器而不部署任何项目工件。

货物专家插件可以吗?有什么想法或替代方案吗?

2 个答案:

答案 0 :(得分:1)

我认为,当您处于可部署的归档项目时,可能无法要求插件不部署配置它的项目。

但你可以做的是创建一个pom项目,其中没有源代码只是pom.xml,并在该项目中运行你的货物插件。

下面的示例在我运行目标install时启动和停止货物插件:

<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>fr.fabien.perso</groupId>
    <artifactId>pom-project-tests</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <executions>
                    <execution>
                        <id>start-container</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>start</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-container</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <container>
                        <type>embedded</type>
                    </container>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

答案 1 :(得分:0)

是的Yersan,可以在没有自建工件部署的情况下启动服务器。可以通过在项目的<deployer />标记上添加空<configuration>元素来实现。

我在货物插件reference site找到了信息。另外,我已在本地项目中测试了配置,以确认它是否有效。