有没有办法告诉maven ear文件的部署顺序?
我的项目结构如下:
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.xmlcommons.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没有在其他项目之前部署:
<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?
发布于 2015-04-16 19:08:24
我终于找到了解决办法。
告诉maven部署顺序的唯一方法是定义poms之间的依赖关系。
因此,如果我想在服务之前部署elasticsearch-search-service-ear,那么我需要在服务-ear中添加一个新的依赖项。
<!-- 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>这里的两个重要设置是:
我希望这对处于同样情况的任何人都有帮助。
https://stackoverflow.com/questions/29660069
复制相似问题