自动部署 EAR 项目,无需从存储库获取依赖项



是否可以将工件(.ear)部署到应用程序服务器(AS)中,而无需从存储库获取其依赖项?

让我解释一下:我尝试配置以部署到 AS 中的 maven 项目有 3 个模块:

  1. 网页(.war - 前端)
  2. EJB ( .ejb - 后端)
  3. 实体(.jar - 实体类)

这些模块被包装到EAR模块中,并且在某些存储库(如Nexus或JFrog Artifactory)中不可用。当我尝试使用 Cargo Maven 插件或 JBoss 部署 Maven 插件时,两者都会通知无法解析这些模块的依赖关系。


已更新 (03/01/2019)

该问题与以下链接第6项和第7项中引用的问题类似:http://webdev.jhuep.com/~jcs/ejava-javaee/coursedocs/content/html/ejb-basicex-eardeploy.html#ejb-basicex-eardeploy-testmodule

这是一种解决方法,但有效。项目不依赖于内部存储库(如 Nexus 或 JFrog Artifactory),而是可以使用 Maven 的参数 -Dmaven.repo.local 将文件夹定义为本地计算机上的存储库。因此,用于部署工件的插件也可以使用此属性并获取其他工件。

也就是说,要在当前文件夹上构建应用程序:

mvn -Dmaven.repo.local=. package

例如,要使用 Cargo Maven 插件部署应用程序(在本例中为 .ear),而不依赖于内部存储库:

mvn -pl app-ear/ -Dmaven.repo.local=. cargo:redeploy

OBS:使用 maven.repo.local 属性,定义为 value 的文件夹将填充项目的所有依赖项。就我而言,这不是问题,因为此命令用于持续集成管道,并且所有文件和文件夹在最终阶段都被丢弃。

最新更新