java - 正确部署maven项目

标签 java maven

我有一个 Maven 项目,这是一个多模块项目

Mainproject
    project1 - jar
    project2 - jar
    project3 - web

现在我完成了项目,我想在服务器上测试它,但不知道如何上传它们,在我的计算机上我添加了一个tomcat插件,它自动将war文件部署到tomcat,但服务器没有maven。

此类项目转向生产的方式是什么?

我应该上传每个模块的目标目录吗?

谢谢

最佳答案

您在这里问了几个问题。有“如何在服务器上进行测试”这一问题,还有“如何转移到生产环境”这一问题。而且它们可能完全不同。

我假设项目中的 JAR 文件由 WAR 文件使用并打包在其 WEB-INF/lib 目录中。如果我错了,那很好。只要了解这类信息就很方便。

Maven 是一个构建工具。它不是部署工具。最后你得到的是一个 WAR 文件。如果运行 mvn install (或 mvn deploy),您将获得 WAR 文件的快照版本。这适合对其他机器进行快速、临时测试。但您很可能会使用适合托管容器的方法来使它们可用。注意:Maven DEPLOY 与将 war 文件部署到 tomcat 是不同的。

在我看来,如果您要将任何东西投入生产,或者在客户面前,或者在测试组面前,您应该使用 Maven 来发布产品。也就是说,使用发布插件(通过release:prepare 和release:plugin 目标)创建 Artifact 的非快照版本(在本例中为WAR 文件的正式版本)。一旦您拥有该 WAR 文件,您就可以以最简单的方式将其迁移到生产服务器(以最佳方式复制、部署到 tomcat 中)。您没有提到此 Web 应用程序是否有数据库要求,在更改任何生产应用程序之前需要考虑这一点。

但是,一旦你有了正式版本,你就有了源代码的标签,你可以准确地知道正在运行什么代码。

我认为您不会自动将 WAR 文件从开发环境复制到生产服务器中。这里有龙。

关于java - 正确部署maven项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15800912/

相关文章:

java - 如何使用 PDFBox api 在 PDF 表单字段中设置签名

java - NScrollTable 的 ListSelectionListener

java - 需要有关使用 Maven 创建 jar 的提示

maven - 当属性值字符串与属性名称相同时,是否可以转义 maven 属性插值?

mysql - 如何在不清除数据库的情况下重新加载 Roo 项目?

java - GORM/Grails 中的家谱模型?

java - 有什么好的迁移自动化软件的建议吗?

java - Glide 库加载 GIF 很慢

java - JUnit 测试在 IntelliJ 中成功但在 Maven 中失败

maven - 如何在gradle中迭代项目的依赖项