【问题标题】:Maven - dynamic pom file?Maven - 动态 pom 文件?
【发布时间】:2013-03-20 19:35:55
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: maven websphere websphere-7


    【解决方案1】:

    您需要的是能够在生命周期中更新 Maven 属性,在与您的was6-maven-plugin 绑定的阶段之前。 (并将此属性用作<updateExisting> 的值)

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

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

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

    【讨论】:

    • 有没有办法让failOnError适用于uninstallApp?我希望进程在installApp 期间因错误而失败。
    • 是的。您必须在执行标签内定义配置。阅读本文了解更多详情:maven.apache.org/guides/mini/…
    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 2011-04-12
    • 1970-01-01
    • 2011-04-12
    • 2016-06-27
    • 2020-04-18
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多