我有一个关于在eclipse中使用maven在Weblogic上运行Java EE应用程序的基本问题。
我使用OEPE(适用于Eclipse的Oracle Enterprise Pack),它带有一些插件,如m2e和wtp。据我所知,这个插件读取pom文件,并基于它们构建jar,war和ear文件。
我现在做的是这样的:
我自动检查构建选项并让这些插件创建我的EAR文件,然后右键单击Eclipse中的weblogic服务器实例并使用add / remove选项将其添加到服务器,最后启动应用程序服务器。这样,当我在我的类中更改代码时,它们将被应用程序服务器和热交换工作选择。
构建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进行部署:部署足够吗?如果是这样,热交换将如何发生,或者我应该使用wls:每次重新部署?如果m2e足够,那么我认为我应该放弃wtp插件(它不知道pom文件的所有插件,我有时应该在eclipse的生命周期管理xml文件中将它们标记为忽略)。
对不起,问题就是这么长,但我希望我能说清楚并获得一些帮助!
答案 0 :(得分:2)
让我为您提供我的清单,以便在Weblogic上热部署我的Web应用程序。此核对表假设一个weblogic版本实现了Servlet 2.5,并假设您的项目是maven,其配置为运行JDK 1.6的maven-compiler-plugin。 换句话说,您的weblogic版本是10.x.x,而您的POM包含以下代码段:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
使用OEPE插件创建新的Weblogic Web模块Weblogic.xml文件:
记下值
<wls:context-root>myappcontextroot</wls:context-root>
稍后将在热部署中使用
从项目的Eclipse上下文菜单中执行Maven更新项目
执行Maven clean install
请按字面意思执行这些步骤,这非常值得!