我有一个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不支持构建单个模块时出现一些错误”)。
有什么想法吗?
由于
答案 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从第一份工作中获取战争。
参考文献: