2

我有一个 Jenkins 构建,它使用-PmyProfile clean package. 这工作正常。现在我希望该项目是可部署的,但在一个单独的任务(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 不支持的单个模块”出现一些错误)。

有任何想法吗?

谢谢

4

3 回答 3

2

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

或者,似乎有Jenkins 插件,但我没有使用它,也不能告诉任何关于它的信息。

于 2012-06-12T13:25:00.120 回答
1

可能的技巧:

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

于 2012-06-12T14:03:01.293 回答
0

deploy-only7.5.Final 版本增加了一个新目标。您可以使用Copy Artifact Plugin从第一份工作中抢占先机。

参考:

于 2015-03-09T13:19:01.523 回答