将Jenkins-Project分开以便部署到JBoss

时间:2012-06-12 13:16:55

标签: maven jboss jenkins

我有一个Jenkins构建,用-PmyProfile clean package构建一个maven项目。这很好用。现在我希望项目可以部署,但是在一个单独的任务(JBoss部署)中,因此可以通过jenkins GUI显式触发它。为此,我在我的pom中有以下内容:

<profiles>
    <profile>
        <id>myProfile</id>
        <properties>...</properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jboss.as.plugins</groupId>
                    <artifactId>jboss-as-maven-plugin</artifactId>
                    <version>7.0.0.Final</version>
                    <configuration>
                        <hostname>localhost</hostname>
                        <port>29999</port>
                        <username>admin</username>
                        <password>admin</password>
                        <filename>${project.build.finalName}.war</filename>
                        <name>my-webapp</name>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

现在我只想分别通过mvn jboss-as:deploy调用该单个部署。但是我该怎么做?如果我创建第二个Jenkins项目,那么一切都需要再次构建,所以这非常愚蠢。作为单独的模块构建也不起作用(“为maven 3不支持构建单个模块时出现一些错误”)。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:2)

它很糟糕,但你总是可以通过使用像../../SecondJob/workspace这样的文件系统相对路径(或使用符号链接)从另一个Jenkins工作区获取东西。我曾经为同样的情况(部署为单独的工作)为我的所有项目执行此操作并且它工作,它只是不优雅,但我相信在Jenkins中没有内置的解决方案。

或者,似乎有Jenkins plugin for that,但我没有使用它,也无法说出任何相关信息。

答案 1 :(得分:1)

可能的伎俩:

只有一个项目,但默认情况下将 DEPLOY 参数设置为 FALSE 进行参数化。构建将包含您的主构建以及调用顶级Maven目标构建后构建步骤。仅当 DEPLOY TRUE 时,才会调用部署步骤。为此,请使用Conditional Build Step plugin

答案 2 :(得分:0)

版本7.5中添加了新的deploy-only目标。最终。您可以使用Copy Artifact Plugin从第一份工作中获取战争。

参考文献: