【发布时间】:2018-12-28 13:19:34
【问题描述】:
是否可以将工件 (.ear) 部署到应用程序服务器 (AS) 中而无需从存储库中获取其依赖项?
让我解释一下:我尝试配置以部署到 AS 中的 maven 项目有 3 个模块:
- 网络(
.war- 前端) - EJB (
.ejb- 后端) - 实体(
.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
【问题讨论】:
-
您无需解决依赖关系即可将 ear 部署到应用程序服务器。文物被塞进耳朵里。我不知道您提到的插件是否需要他们试图从工件(或他们的 pom)中获得的额外信息。这可能是原因。不过,让我补充一下,通常 所有 工件都在存储库中,因此存储库中没有 war 和 jar 是一个例外,可能会导致意外行为。
-
在可以访问所有工件的主机上进行 EAR 包装。之后它是一个普通文件,你应该能够这样对待它。
-
我也有同样的想法@JFMeier。但是 Cargo Maven 插件会通知无法解析工件,例如,即使
.war和.jar文件被打包到.ear中。 -
@rogerio_gentil 我们需要更多信息。日志文件说什么?
-
当我执行一个示例项目(类似于实际应用程序)-
rm -rf ~/.m2/repository/rogeriogentil/* && mvn clean package -DskipTests && mvn -pl app-ear/ -Pdeploy cargo:deploy,Maven 产生以下日志:Failed to execute goal on project app-ear: Could not resolve dependencies for project rogeriogentil:app-ear:ear:1.0: Could not find artifact rogeriogentil:app-ejb:jar:1.0 in central (https://repo.maven.apache.org/maven2)
标签: maven deployment ear cargo-maven2-plugin