繁体   English   中英

从maven的开发到生产

[英]Releasing from development into production in maven

我对在开发和生产环境中使用maven感到困惑 - 我确信这很简单,我很遗憾。 感谢任何帮助..

我在本地机器上的eclipse中设置了maven并编写了一些软件。 我真的很喜欢它包括依赖罐子这样的东西很容易。

这就是我的开发环境。 但现在我想在远程服务器上将项目发布到生产中。 我搜索了文档,但我无法弄清楚它应该如何工作或maven最佳实践是什么..你应该:

a)还要在生产环境中运行maven,并将所有文件上传到生产环境并在那里重建项目? (我在生产服务器上重建“已发布”代码的想法让我感到不满,所以我很确定这是不对的..)

b)使用mvn:package创建你的jar文件,然后将其复制到生产中? (但那么所有那些好的依赖项是什么?是不是存在一个危险,你的测试代码现在将在生产环境中针对不同版本的依赖jar运行,可能会破坏你的代码?或者缺少一个jar ...? )

c)其他我不知道的东西..

在此先感谢您的帮助!

  • 您应该将您的代码置于版本控制之下(并且您永远不会将文件“上传”到另一台机器,如果需要,您可以从版本控制系统“下载”它们)。

  • 您应该以一种格式(WAR,EAR,另一种类型的包)打包您的代码,这些格式可以部署在生产环境中以便执行。 这样的包通常包括依赖性。 要构建更复杂的包, Maven Assembly Plugin可以提供帮助。

  • Maven生成的工件(JAR,WAR,等等)应该通过远程存储库共享 (因此部署 - 我的意思是mvn deploy在这里mvn deploy - 到这个远程存储库)。 远程存储库可以是通过Web服务器或更高级的解决方案(如Nexus)提供的简单文件系统。

  • 开发通常使用SNAPSHOT依赖项(例如1.0-SNAPSHOT)完成。 在发布时,您应该将版本更改为“固定”版本(例如1.0)和pom.xml其他位,运行构建以检查一切正常,提交修改后的pom.xml ,创建在VCS标签,推进版本在新的快照(如1.1-SNAPSHOT) pom.xml ,提交新pom.xml在VCS。 整个过程需要一些工作,但这可以使用Maven Release Plugin自动完成。

  • 在生产环境中,从远程存储库获取要部署的工件并进行部署(一些项目使用Maven将部署自动化到生产服务器,但这是另一个故事)。

当然,存在各种变化(部署到生产大多数时间是公司特定的)但总体思路是存在的。

构建工件时,通常会说明依赖项的范围。 在默认范围内,它应该打包在您的存档中。 如果您不想要它,请使用“提供”范围 - 在这种情况下,您必须准备提供依赖关系的运行时环境。 重建一个仅用于部署的软件包通常是一个坏主意。

至于部署, 您可以使用maven的antrun插件在本地或通过scp复制文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM