与Maven在Glassfish上进行热部署

与Maven在Glassfish上进行热部署,maven,deployment,glassfish-3,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 --

我已经构建了一些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

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

多谢各位


Olivier

您可以尝试以下方法:

mvn glassfish:redeploy
尝试这样做:

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

真的
...
如果您使用的是maven glassfish插件的2.2版,那么这就可以了。但有一些坏消息:

  • 不幸的是,2.2还没有发布,插件的积极开发似乎在不久前就停止了(代码更新已经3年多了)。因此,我们不太可能看到版本2.2的发布
  • 似乎也没有启动,因此您甚至无法使用未发布的快照版本(除非您选择2.2版快照并尝试自己构建)
  • 如何使用部署目标同时部署同一应用程序,而不删除同名的第一个应用程序

    使用Maven Glassfish插件?你不能

    相反,您可能希望查看一些允许您直接执行asadmin命令的内容,这样您就可以手动传递
    --force
    选项:

    • 使用来执行asadmin命令:
    • 使用maven插件执行asadmin

    我在这里发布了一个使用maven glassfish插件并修改asadmin.bat的解决方案

    最后,我使用了取消部署/部署目标。这是可行的,但不是我想要的方式……这将在第一次失败(当应用程序尚未部署时)