从maven的开发到生产

Jer*_*emy 13 java maven-2

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

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

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

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

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

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

在此先感谢您的帮助!

Pas*_*ent 16

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

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

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

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

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

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