【问题标题】:Which Maven GlassFish plugin to use?要使用哪个 Maven GlassFish 插件?
【发布时间】:2009-12-02 22:27:53
【问题描述】:

我一直在尝试通过 Maven 在 GlassFish V3 中集成部署 java .war。虽然我找到了一些插件,但它们看起来都不是很活跃:

我从Eskato's Blog 中获得了最多的信息,它写于 2008 年 3 月,所以我不知道 GlassFish Maven 集成的状态如何,也找不到合适的插件来使用。使用Maven GlassFish Plugin 我已经取得了一些成功,但它仍然不能完全很好地支持它所说的所有目标,这使得一些命令无效。

还有其他人能够成功集成 Glassfish V3 和 Maven 吗?如果是,您使用了哪些资源来完成它?

【问题讨论】:

    标签: java maven-2 glassfish glassfish-3


    【解决方案1】:

    更新: CARGO-491 已修复,我已相应更新我的答案。总结一下,现在基本上有三种选择:

    Maven GlassFish 插件

    第一个选项是使用Maven GlassFish Plugin。此插件允许与本地或远程 GlassFish 安装进行交互,并在 Maven 构建生命周期内管理 Glassfish 域和组件部署。

    Maven 嵌入式 GlassFish 插件

    第二种选择是使用Maven Embedded Glassfish Plugin。如其名称所述,此插件不依赖于现有安装,而是使用嵌入式 GlassFish,在与插件相同的 JVM 中运行。如果您想保持构建的可移植性(任何人都可以获得您的 POM 并运行涉及 GlassFish 的构建而无需安装它),这个插件非常好,它具有与普通 GlassFish 安装几乎相同的功能,当然除了集群(您可以使用预配置 domain.xml 如果需要)。示例见Testing with the GlassFish Maven plugin and JavaDB Embedded

    Maven 货运插件

    Kohsuke Kawagushi 发起的工作最终集成到 Cargo 中,从 Cargo 1.0.1 开始,GlassFish 3.x is now supported。因此,使用Maven Cargo plugin 是第三种选择。这对于想要以不可知的方式与容器交互的构建来说会很有趣。但我不确定 Cargo 是否允许 GlassFish 特定插件的所有灵活性(例如 JMS 资源的部署等)。

    【讨论】:

    • Maven Embedded GlassFish 插件的新地址似乎是embedded-glassfish.dev.java.net
    • @mjustin 我不确定此链接是否专用于 Maven 嵌入式 GlassFish 插件,它更多地是关于 围绕“嵌入式 GlassFish v3”的 API 和工具。无论如何,谢谢你的链接。
    • 当前版本 (3.0.1) 的嵌入式 glassfish 插件在解析 tld 文件时存在严重错误,这意味着您的构建将不可靠。 glassfish.dev.java.net/issues/show_bug.cgi?id=11516
    • maven glassfish 插件 (https://maven-glassfish-plugin.dev.java.net/) 的链接不起作用。我相信这个maven-glassfish-plugin.java.net http://maven-glassfish-plugin.java.net/ 是应该使用的。
    【解决方案2】:

    maven-glassfish-plugin 和 maven-embedded-glassfish-plugin 各有利弊。主要区别在于后者与嵌入式 Glassfish 实例一起使用,如其名称所示,即服务器与插件在同一 VM 中运行。

    因此,您不能使用 maven-embedded-glassfish-plugin 将 WAR 部署到独立 Glassfish 服务器,您需要 maven-glassfish-plugin 来执行此操作。

    maven-glassfish-plugin 的主要问题是它与 Glassfish 服务器的交互是有状态的 - 我找不到使用它的方法,这样我的 WAR 无论如何都会部署到服务器上,无论之前的构建是否成功。

    glassfish:deploy 如果 WAR 已经部署,则不起作用。如果未部署 WAR,glassfish:redeploy 将不起作用。而且 Maven 没有 if-else 逻辑...

    【讨论】:

    • 我喜欢独立的方法,但正如您指出的那样,存在与部署/重新部署相关的问题。你找到更好的解决方案了吗?
    【解决方案3】:

    我在博客中介绍了如何配置 Maven 嵌入式 GlassFish 插件以在 GlassFish 4.0 中正常工作,直到该插件发布新版本。

    https://blogs.oracle.com/brunoborges/entry/glassfish_4_beta_and_maven

    此外,可以在 glassfish-resources.xml 中配置数据源并使其正常工作。

    https://blogs.oracle.com/brunoborges/entry/configure_datasources_for_maven_embedded

    对于想要使用 Maven 和 GlassFish 4 运行 Java EE 7 项目的任何人来说,这些都是有用的提示

    【讨论】:

      【解决方案4】:
      【解决方案5】:

      我在 maven-glassfish-plugin.dev.java.net 上使用 glassfish 插件,并做了一些代码更改以支持 v3。我请求提交者状态并等待确认。希望我可以提交我的更改。

      【讨论】:

        猜你喜欢
        • 2017-03-30
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        相关资源
        最近更新 更多