Java 发布时部署

Java 发布时部署,java,maven,web,maven-release-plugin,maven-scm,Java,Maven,Web,Maven Release Plugin,Maven Scm,我最近发布了一个新的XaaS框架的最终版本。该框架的一部分是用于翻译问题的Web应用程序 其想法是保持webapplication与框架兼容。这意味着在每个新版本上,都必须部署已发布的webapplication 发布我正在使用的版本 mvn release:prepare release:perform 什么工作很好 在这个命令中,我们有3个不同的版本 以前的版本(即1.9-SNAPSHOT) releasename版本(即1.9-FINAL) 下一个开发版本(即2.0-SNAPSHOT)

我最近发布了一个新的XaaS框架的最终版本。该框架的一部分是用于翻译问题的Web应用程序

其想法是保持webapplication与框架兼容。这意味着在每个新版本上,都必须部署已发布的webapplication

发布我正在使用的版本

mvn release:prepare release:perform
什么工作很好

在这个命令中,我们有3个不同的版本

  • 以前的版本(即1.9-SNAPSHOT)
  • releasename版本(即1.9-FINAL)
  • 下一个开发版本(即2.0-SNAPSHOT)
如何使用
scp
部署
xxx-1.9-FINAL.war
xxx-2.0-SNAPSHOT.war

一些重要的好处:

  • 如果无法
    scp
    ed解除战争,则释放将失败
  • 如果释放失败,就不应该部署战争
  • pom.xml
    必须包含容器版本

  • release:perform还将部署发布的版本(在您的情况下为1.9-FINAL)。 人工制品的具体部署方式由maven deploy插件的设置控制(传输可以设置为scp)。详细说明可在此处找到:

    希望这能回答你的问题。关于你问题中的几点:

    如果战争无法平息,释放就会失败。 在这种情况下,只有命令的执行部分会失败。

    如果释放失败,就不应该部署战争。 这有点不合时宜。

    pom.xml必须包含容器版本。 我不确定我是否理解你的意思。

    这是设计不可能的
    没有办法让WebContainer部署失败。

    按容器版本,我的意思是
    pom.xml
    应该配置webappcontainer必须部署到的对象,例如
    tomcat-7.0.32
    glassfish
    jboss5
    。实际上,您没有通过“在每个新版本上都必须部署已发布的web应用程序”为
    scp命令提供配置示例。您实际上需要将已发布的版本部署到web容器/应用程序服务器?如果是这种情况,另一个选项可能是使用maven exec插件。有了它,您可以运行任何命令,比如ssh,它可以做任何事情。在这个线程的第一个答案中可以找到一个例子:对于要部署的web容器,您可以使用maven分类器。这将被附加到工件名称前面的“-”,您可以通过为每个web容器使用不同的构建配置文件来设置它。名字里有它,你也可以在上面提到的脚本里有它。