使用Maven部署Oracle Service Bus:从一个目录部署良好但从另一个目录失败

时间:2017-08-17 21:29:35

标签: oracle maven servicebus osb

我正在尝试为OSB(Oracle Service Bus)组合创建自动构建和部署。在构建服务器上设置Maven和OSB插件之后,这样的系统包含两个命令(通过命令提示符从POM所在的目录运行):

mvn package
mvn deploy -DoracleServerUrl=http://serverurl:port -DoraclUsername=username -DoraclePassword=password

这在构建系统中失败,但有以下异常:

The session cannot be activated due to the existence of conflicts.

但我相信,在它的核心,这是因为构建系统在构建阶段使用第一个命令创建包,然后在发布阶段使用第二个命令进行部署。

如果我直接获取代码并运行目录1中的两个命令:     d:\ OSBComposites \ HelloWorldOSBService \ HelloWorldOSBService 命令运行,复合部署正常。

如果我将相同的代码从目录1复制到目录2并从目录2运行相同的命令:     d:\ OSBComposites \ HelloWorldOSBService \ HelloWorldOSBService2 第二个命令失败,上面引用了相同的例外。

这也不是一次性的情况 - 我可以持续数十次重建它。从目录1运行命令总是成功,而从目录2运行命令总是失败,但上面提到的例外情况。

是的,这是一个简单的默认HelloWorld组合 - 就像没有引用绝对路径一样简单。

Maven或OSB中是否有缓存能够记住"记住"首次部署复合的原始路径还是阻止从其他位置部署复合的其他机制?

1 个答案:

答案 0 :(得分:2)

如果您的pom.xml位于/path/directory1/pom.xml,您的OSB项目将部署为directory1 - 重新部署为directory2可能会导致您发现的冲突。 如果您需要从其他位置部署它,可以将其放在/path2/directory1/pom.xml

对于您的示例,这应该有效: 将项目的内容复制到类似于下面的路径,然后运行maven部署

D:\OSBComposites\HelloWorldOSBService2\HelloWorldOSBService