使用Maven在Glassfish上进行热部署

时间:2012-10-24 10:11:14

标签: maven deployment glassfish-3

我已经构建了一些POM文件来将EAR部署到Glassfish V3。

它适用于首次部署但下一次部署时,它已崩溃:

[INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:/Documents and
Settings/Olivier/Local Settings/Temp/mgfp8179073735921963426.tmp --interactive=false --echo=true --terse=true d
eploy --name sim --force=false --precompilejsp=false --verify=false --generatermistubs=false --availabilityenabled=false --asyncreplication=true --keepreposdir=false --keepfailedstubs=false --isredepl
oy=false --logreportederrors=true --upload=false "E:\\workspaces\\java\\sim_final\\ear\\target\\ear-0.0.1-SNAPSHOT.ear"
[ERROR] remote failure: Erreur lors du dÚploiementá: L'application portant le nom sim est dÚjÓ inscrite. SpÚcifiez que le redÚploiement doit Ûtre forcÚ ou redÚployez l'application. Sinon, s'il s'agit
d'un nouveau dÚploiement, choisissez un nom diffÚrent. Pour plus d'informations, consultez le fichier server.log.

总而言之,我可以部署一次但不能同时部署。

这是因为正如您所看到的,force参数设置为false(--force = false),因此已存在具有此名称的应用程序,并且它未在另一时间部署。

可能,如果我做了一个取消部署目标,然后是部署目标,这将有效,但我很确定我可以配置部署目标(在Glassfish上进行热部署)将force参数设置为true但我可以'找到了解决方法。

试图这样做:

<configuration>
<force>true</force>
...
</configuration>

但生成的脚本再次包含--force = false。

所以我的问题是:如何使用部署目标同时部署同一个应用程序而不删除具有相同名称的第一个应用程序?

谢谢

奥利弗

3 个答案:

答案 0 :(得分:0)

您可以尝试如下:

mvn glassfish:redeploy

答案 1 :(得分:0)

  

试图这样做:

<configuration>   
  <force>true</force>
  ...
</configuration>

如果您使用的是maven glassfish插件的2.2版本,那将会有效。但是有一些坏消息:

  1. 不幸的是,2.2尚未发布,插件上的主动开发似乎已经停止了一段时间(自代码更新以来已超过3年)。因此,我们不太可能看到2.2版本的发布。
  2. repository hosting the snapshot version似乎也没出现,所以你甚至无法使用未发布的快照版本(除非download the source版本为2.2-SNAPSHOT并尝试自己建造。)。
  3.   

    如何使用部署目标同时部署相同的应用程序而不删除具有相同名称的第一个应用程序

    使用Maven Glassfish插件?你不能。

    相反,您可能希望查看允许您直接执行asadmin命令的内容,以便您可以手动传入--force选项:

答案 2 :(得分:0)

我使用maven glassfish插件在Redeploy remote glassfish with cargo fails发布了一个解决方案并修改了asadmin.bat