0

我正在使用 Maven 插件was6-maven-plugin部署到 websphere。安装应用程序时,如果我正在安装新应用程序并且正在更新现有应用程序,则应该有一个名为“updateExisting”的配置值。如果我正在全新安装/更新应用程序,我不喜欢手动切换此值。falsetrue

在我看来,我可以添加一个uninstallApp目标,即在安装应用程序之前始终卸载它,但这似乎是一种相当愚蠢的做法。

我注意到这个插件还有一个目标wsListApps是输出安装在服务器上的所有应用程序。输出如下所示:

[INFO] [wsadmin] WASX7209I:使用 SOAP 连接器连接到节点 1234Node02 上的进程“server1”;进程的类型是:UnManagedProcess
[信息] [wsadmin] 默认应用程序
[信息] [wsadmin] IBMUTC
[信息] [wsadmin] MyApplicationEAR
[信息] [wsadmin] ivtApp
[INFO] [wsadmin] 查询

Maven 是否可以扫描此输出中的字符串“MyApplicationEAR”并将“updateExisting”设置为“true”(如果找到),否则将其保留为“false”?

4

1 回答 1

2

您需要的是能够在生命周期中更新 maven 属性,在阶段与您的was6-maven-plugin. (并使用此属性作为 的值<updateExisting>

不幸的是,maven 属性是静态的,不能在运行时更改。所以乍一看这是不可能的。

但是,有一个插件:properties-maven-plugin可以用来在运行时定义新的属性。属性的值可以由 groovy 脚本定义。现在的问题更多是关于如何编写一个 groovy 脚本来告诉您的应用程序是否已经存在。

老实说,我不知道使用它是否是个好主意。我认为每次将failOnError设置为 false 时运行卸载目标可能是最简单的方法(因此可能是最好的,但也许我遗漏了什么?)

于 2013-03-20T20:39:18.393 回答