哪个Maven GlassFish插件可以使用?

时间:2009-12-02 22:27:54

标签: java maven-2 glassfish glassfish-3

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

我从Eskato's Blog得到了最多的信息,它写于2008年3月,所以我不知道GlassFish Maven集成的状态是什么,也找不到合适的插件。使用Maven GlassFish Plugin我取得了一些成功,但它仍然无法完全满足它所支持的所有目标,这使得某些命令无效。

有没有其他人能够成功整合Glassfish V3和Maven?如果是这样,你用什么资源来完成它?

5 个答案:

答案 0 :(得分:41)

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

Maven GlassFish插件

第一种选择是使用Maven GlassFish Plugin。此插件允许与Maven构建生命周期中的本地或远程GlassFish安装以及Glassfish域和组件部署的管理进行交互。

Maven Embedded 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资源等)。

答案 1 :(得分:8)

maven-glassfish-plugin和maven-embedded-glassfish-plugin都有其优点和缺点。主要区别在于后者使用Embedded Glassfish实例,如其名称所示,即服务器在与插件相同的VM中运行。

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

我对maven-glassfish-plugin的主要问题是它与Glassfish服务器的交互是有状态的 - 我找不到使用它的方法,这样我的WAR就可以在任何情况下部署到服务器,无论先前的构建是否成功。

如果已部署WAR,则

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

答案 2 :(得分:2)

我发表过关于如何配置Maven Embedded 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项目的任何人来说,这些都是有用的提示

答案 3 :(得分:1)

答案 4 :(得分:0)

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