0

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

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

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

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


已更新(2019 年 3 月 1 日)

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

4

1 回答 1

0

这是一种解决方法,但有效。项目不依赖于内部存储库(如 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属性,定义为值的文件夹将填充项目的所有依赖项。就我而言,这不是问题,因为此命令已在持续集成管道中使用,并且所有文件和文件夹最终都会被丢弃。

于 2019-01-04T12:46:11.050 回答