从快照存储库下载 WAR 并使用 mvn 部署到本地 JBoss

Posted

技术标签:

【中文标题】从快照存储库下载 WAR 并使用 mvn 部署到本地 JBoss【英文标题】:Download WAR from snapshot-repository and deploy to local JBoss using mvn 【发布时间】:2012-01-07 18:54:47 【问题描述】:

目前我将warjboss:hard-deploy 部署到我的JBoss 6 AS。这工作正常,但我必须从 SVN 签出项目并将其打包。

war 已由 Jenkins 上传到我们的内部快照存储库,如果我可以从该存储库将其下载到测试服务器上并使用 maven 直接将其部署到 JBoss,那就太好了。

这个问题与Maven deploy artifact war from repository to remote server有关,但我认为答案不正确(见那里的评论)。

【问题讨论】:

【参考方案1】:

理想情况下,您希望将 Jenkins 设置为作为 CI 构建的一部分部署到您的测试服务器。

或者,如果您想在要部署到的服务器上手动运行脚本,您可以设置特定的pom.xml 来执行此任务。首先设置依赖插件来下载你的战争:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>my-group</groupId>
              <artifactId>my-web-archive</artifactId>
              <version>my-vesion</version>
              <type>war</type>
              <destFileName>my-web-archive.war</destFileName>
            </artifactItem>
          </artifactItems>
          <outputDirectory>$project.build.directory</outputDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

用组 ID、工件 ID 和版本替换 WAR 文件的相应属性。接下来配置JBoss插件部署下载的WAR:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jboss-maven-plugin</artifactId>
    <version>1.5.0</version>
    <configuration>
      <jbossHome>/opt/jboss-6</jbossHome>
      <serverName>all</serverName>
      <fileName>$project.build.directory/my-web-archive.war</fileName>
    </configuration>
  </plugin>

然后您应该能够从您的内部存储库中下载工件,并使用以下命令将其部署到本地运行的 JBoss 容器中:

mvn package jboss:hard-deploy

【讨论】:

以上是关于从快照存储库下载 WAR 并使用 mvn 部署到本地 JBoss的主要内容,如果未能解决你的问题,请参考以下文章

mvn release 插件发布下一个快照不是当前版本

如何在部署阶段设置战争名称到 Nexus 存储库?

Maven从错误的存储库下载[关闭]

快照和发布存储库的使用方式有何不同?

如何从 Maven 存储库中找到最新版本的工件

使用部署密钥从 Github 存储库的发布部分下载文件