首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >maven ear部署命令

maven ear部署命令
EN

Stack Overflow用户
提问于 2015-04-15 20:17:44
回答 1查看 721关注 0票数 0

有没有办法告诉maven ear文件的部署顺序?

我的项目结构如下:

代码语言:javascript
运行
复制
app
 |- pom.xml
 |
 |- commons (jar)
 |   |-pom.xml
 |
 |- integration (pom)
 |   |-pom.xm
 |   |
 |  ...
 |   |
 |   |-elasticsearch-search-service (pom)
 |      |-pom.xml
 |      |
 |      |-elasticsearch-search-service-bean (jar)
 |      |  |-pom.xml
 |      |
 |      |-elasticsearch-search-service-ear (ear)
 |         |-pom.xml
 |
 |- services (pom)
     |-pom.xml
     |
     |-search-service (jar)
     |   |-pom.xml
     |
    ...
     |
     |-restapi-web (war)
     |   |-pom.xml
     |
     |-services-ear(ear)
         |-pom.xml

commons.jar在每个ears中都打包在lib文件夹下。services.ear从elasticsearch-search-service-bean.jar调用ejb服务,因此在服务-ear之前必须部署elasticsearch-search-service-ear。

当我运行maven时,它首先尝试部署服务-ear,当然,它失败了,没有定义名为elasticsearch-search-service-bean/SearchServiceBean的bean :在JNDI环境中找不到。

当我按适当的顺序手动部署耳朵时,一切都很好。

我在像这样的服务ear项目中添加了一个依赖项,但是它不工作,而且ear没有在其他项目之前部署:

代码语言:javascript
运行
复制
<dependency>
    <groupId>...</groupId>
    <artifactId>elasticsearch-search-service-bean</artifactId>
    <version>...</version>
    <scope>provided</scope>
</dependency>

如果我尝试将elasticsearch-search-service-ear依赖项添加到service-ear项目中,则部署顺序是可以的,但我得到了以下例外:

由于: org.apache.maven.project.DependencyResolutionException:无法解决项目的依赖关系.:services-ear:1.0:在本地存储库中缓存了http://repo.maven.apache.org/maven2中的...:elasticsearch-search-service-ear:jar:1.0失败,在中央更新间隔过去或强制更新之前,不会重新尝试解析

我如何告诉maven开始在其他耳朵之前部署elasticsearch-搜索服务-ear?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 19:08:24

我终于找到了解决办法。

告诉maven部署顺序的唯一方法是定义poms之间的依赖关系。

因此,如果我想在服务之前部署elasticsearch-search-service-ear,那么我需要在服务-ear中添加一个新的依赖项。

代码语言:javascript
运行
复制
<!-- elasticsearch-search-service.ear needs to be deployed before services.ear -->
<dependency>
    <groupId>...</groupId>
    <artifactId>elasticsearch-search-service-ear</artifactId>
    <version>...</version>
    <type>pom</type>
    <scope>provided</scope>
</dependency>

这里的两个重要设置是:

  • 范围需要“提供”,它阻止elasticsearch-搜索-服务-ear库被添加到服务-ear中。
  • 类型需要为"pom",以避免未能找到.:elasticsearch-搜索-service-ear:jar

我希望这对处于同样情况的任何人都有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29660069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档