我真的不明白mvn deploy
我们为什么要这样做?
我做
mvn clean install
然后我做
mvn jetty:run
我对为什么需要这样做或者我应该偶尔进行部署感到困惑。
答案 0 :(得分:2)
简单地让Maven从本地存储库(通常为$ HOME / .m2 / repository)解析工件(您在依赖项部分中放置的工件)。如果它在本地存储库中找不到工件,它将看起来是一个远程存储库。标准远程存储库是http://repo1.maven.org/maven2的“中央”存储库。 如果执行“mvn install”,则告诉Maven将工件(目标文件夹中的WAR)复制到本地存储库。现在您的其他Maven项目可以解析工件。 如果您希望其他人能够解析工件,则需要将其放在远程存储库中。这是通过“mvn deploy”完成的(就像中央存储库一样,您可以创建自己的远程存储库)。
要部署Web应用程序,您需要从目标文件夹手动部署WAR文件,或使用Mago插件(如Cargo)部署到应用程序服务器。
将WAR文件部署到远程Maven存储库有什么意义,因为它们通常不会在其他项目中用作依赖项?
我建议在应用程序服务器上部署某些内容之前,先正确发布代码。有一个发布插件可以帮助您。除了将它放在远程Maven存储库之外,它还标记SCM中的当前源(例如subversion)。现在,您的Maven存储库中有一个版本化的二进制文件,它与SCM中的标记版本相匹配。 由于Maven存储库具有定义良好的结构,因此可以轻松编写将新版本提取到生产服务器的脚本。
答案 1 :(得分:1)
主要使用部署插件 在部署阶段,添加您的 工件到远程存储库 与其他开发者分享 项目。这通常是在一个 集成或发布环境。它 也可以用来部署一个 特别的神器(例如第三个 党的罐子像孙的非 可再分发的参考 实现)。
与
安装插件在使用过程中使用 安装阶段以添加工件 本地存储库