我有一个关于在 Eclipse 中使用 Maven 在 Weblogic 上运行 Java EE 应用程序的基本问题。
我使用 OEPE(Oracle Enterprise pack for Eclipse),它带有一些插件,例如 m2e 和 wtp。据我所知,这个插件读取 pom 文件并基于它们构建 jar、war 和 ear 文件。
我现在做的是这样的:
我检查了自动构建选项并让这些插件创建我的 EAR 文件,然后右键单击 Eclipse 中的 weblogic 服务器实例并使用添加/删除选项将其添加到服务器,最后启动应用程序服务器。这样,当我在我的类中更改代码时,它们将被应用程序服务器选中并且热交换工作。
构建 EAR 文件的另一种方法是使用 m2e 插件:右键单击父 pom 文件并选择 maven install 然后启动应用程序服务器并使用 wls:deploy 来部署 EAR 文件。(这次我没有从 Eclipse 中将 ear 文件添加到应用程序服务器,当我在 IDE 中右键单击我的 weblogic 实例时,eclipse 也不知道那个 EAR 文件)。
据我所见,我只能将这些工件添加到使用 wtp 插件构建的服务器,而不是使用 m2e 插件的 maven 命令构建的工件。wtp 和所有这些插件(实际上只是运行 mvn -install 的 m2e 除外)的问题在于它们不能完美地工作。有时他们没有正确构建工件,有时 jar 文件已经过时并且它们没有得到更新。此外,当您在另一个 maven 项目中使用一个项目的 jar 文件时,他们会在您更改之前被 jar 文件卡住,而使用 m2e 时,它们会完美地构建。
现在这是真正的问题:
哪种方式是正确的热部署方式?
我错过了什么吗?使用 m2e 插件构建 ear 文件并使用 wls:deploy 进行部署是否足够?如果是这样,热插拔将如何自行发生,或者我应该每次都使用 wls:redeploy 吗?如果 m2e 足够了,那么我假设我应该放弃 wtp 插件(它不知道 pom 文件的所有插件,我有时应该在 eclipse 的生命周期管理 xml 文件中将它们标记为忽略)。
很抱歉这个问题太长了,但我希望我能把案子说清楚并得到一些帮助!