如何从 Eclipse 将 Maven 项目的 WAR 部署到 JBoss 服务器?
Posted
技术标签:
【中文标题】如何从 Eclipse 将 Maven 项目的 WAR 部署到 JBoss 服务器?【英文标题】:How to deploy WAR of Maven Project to JBoss server from Eclipse? 【发布时间】:2011-08-16 02:24:24 【问题描述】:我想将 Maven 项目的 WAR 部署到 JBoss 服务器。我知道从 Eclipse Export->War 将 WAR 文件部署到 JBoss。但是我怎样才能为 Maven 项目做到这一点。任何一步一步的信息或有用的网站链接都会对我很有帮助。谢谢。
编辑:我添加了
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<version>1.5.0</version>
<configuration>
<jbossHome>/home/tanmoy/Jboss</jbossHome>
<serverName>all</serverName>
<fileName>target/LoginExample-1.0.war</fileName>
</configuration>
</plugin>
到我的 pom.xml 并作为 maven 项目再次导入,但是在右键单击 pom.xml 以运行时,我没有看到任何部署选项。
【问题讨论】:
对于那些在这里磕磕绊绊的人......使用官方jboss-as-maven-plugin 【参考方案1】:您可以右键单击 pom.xml 文件并选择Run As
-> Maven Build
。将构建目标设置为clean package
。完成后进入项目的目标目录,右键单击战争并按照您当前的操作导出。
编辑:
要在您的 pom.xml 中执行此操作,请使用 jboss maven 插件:http://mojo.codehaus.org/jboss-maven-plugin/examples/deploy-undeploy-examples.html
【讨论】:
Run As->Maven install 构建项目并将 WAR 放入目标文件夹,我可以手动将其复制粘贴到 JBoss,但我说的是自动部署到 JBoss。 pom.xml可以吗? 对不起,我误解了你的问题。现在将编辑我的答案 我编辑了我的问题以提供有关 jboss-maven-plugin 的更多信息。【参考方案2】:http://cargo.codehaus.org/Maven2+plugin 也可能是一个不错的选择。
【讨论】:
【参考方案3】:我找到了解决方案,我正在分享它,因为它可能对某人有帮助。 我的配置是:
-
Fedora 14
适用于 Java EE 的 Eclipse Helios
JBoss 4.2.0-GA
你还需要
-
在系统中安装 maven
在你的 Eclipse 中安装 m2eclipse 插件
现在您可以开始创建项目了。
-
打开 Eclipse->选择您的工作区
设置服务器。设置服务器
-
转到窗口->显示视图->服务器
右键单击服务器窗格,选择新建->服务器
从打开的窗口中选择JBoss->JBoss v4.2
点击下一步
浏览应用程序服务器目录,即 JBoss 所在的文件系统中的位置。
点击完成
-
进入File->New->Project,选择Web节点下的Dynamic Web Project
点击下一步
给项目名称
从目标运行时选择 JBoss v4.2
点击下一步两次
您将需要 web.xml,因此请确保在最后一页中选中“生成 web.xml 部署描述符”。
单击完成,Eclipse 将为您创建一个动态 Web 项目
-
右键单击项目名称
选择 Maven->启用依赖管理
将打开一个用于创建 POM 的窗口
从包装下拉菜单中选择战争
点击完成,您的 pom.xml 将被创建
-
右键单击项目名称并转到属性
从左侧窗格中选择 Java 构建路径
转到“库”选项卡
编辑 JRE 系统库。编辑系统库
-
选择JRE System Library并点击右侧的Edit按钮
从下拉菜单中选择执行环境 JavaSE-1.6
点击完成
-
点击添加文件夹
选择源
点击确定,您的项目就准备好了
-
首先将所有需要的jar包复制到WEB-INF中的lib文件夹中
每当您向 pom.xml 添加依赖项时,Mavan 都会下载所需的 jar 并添加到您的项目中。您可以通过展开节点 Project->Java Resource->Libraries->Maven Dependencies 查看这些 jar。每个 jar 文件旁边都给出了 jar 的路径。它通常位于 /.m2/repository 中。您可以将这些文件复制到上述 lib 文件夹中。
现在右键单击项目名称
选择导出->WAR 文件
在目标中浏览到您的服务器的路径
点击Finish,它将把WAR文件部署到JBoss服务器中。
注意:您的 WAR 的 jar 与 JBoss 的 lib 的 jar 有一些重叠的可能性。然后你应该采取适当的行动。就像从您的 WAR 中删除 jar(如果您的 jar 版本与 JBoss 的版本相同或更低)或替换 JBoss 的 jar 并从您的 WAR 中删除该 jar(如果您的 jar 版本高于 JBoss 的版本)。在做任何事情之前我应该小心并收集好知识。
谢谢。
【讨论】:
在 juno 4-2 变成了 select configure->convert to maven project。 ***.com/questions/10362166/…Select Export->WAR file
: 反正我可以单独通过 maven 做到这一点?
@Mr_and_Mrs_D 你可以设置你的maven构建的目标路径指向服务器的部署目录。
谢谢,但恐怕这不完全是便携的 - 还有其他解决方案吗?
@Mr_and_Mrs_D 如果你正在使用JBoss,请检查maven jboss插件是否可以帮助你。【参考方案4】:
假设
我假设您已经为 Maven 安装了 Eclipse 插件。
安装
在项目资源管理器中选择项目时选择 运行 --> 运行方式 --> Maven 安装
运行 Jboss
转到运行 --> 运行配置..
添加新的 Maven 构建
为进程命名,选择将部署为war的基本目录
设定目标 --> jboss:start
按照这些步骤,您可以通过 Eclipse 部署所有内容。
玩得开心。 :)
【讨论】:
【参考方案5】:正确的格式是:
<fileName>$basedir/target/webapp.war</fileName>
【讨论】:
【参考方案6】:使用以下目标在 Jboss 文件夹中部署您的战争
干净安装 jboss:hard-deploy【讨论】:
【参考方案7】:如果它是一个 maven 应用程序 (EAR) 或 (JAR) 或任何其他应用程序,您只需将其添加到您的 pom.xml:
<plugin>
<groupId>org.jboss.as.plugins</groupId>
<artifactId>jboss-as-maven-plugin</artifactId>
<configuration>
<filename>$artifactId-$project.version.ear</filename>
<port>9999</port> <!-- you change it following what you have on your server config -->
</configuration>
</plugin>
在你的 Eclipse 运行配置中,你为目标所做的配置:jboss-as:deploy
当然我是在说她关于 Jboss AS7 或 EAP6
【讨论】:
它将如何识别服务器(如果我有多个)?【参考方案8】:只需将以下插件添加到 POM.xml 对我有用。
<build>
...
<plugins>
...
<plugin>
<groupId>org.jboss.as.plugins</groupId>
<artifactId>jboss-as-maven-plugin</artifactId>
<version>7.9.Final</version>
</plugin>
...
</plugins>
...
</build>
使用命令提示符可以部署或取消部署工件。
mvn jboss-as:redeploy
mvn jboss-as:undeploy
注意:以上选项使用http://localhost:9999 url 将工件部署到服务器。在执行命令之前,Jboss 服务器应该在后台运行。
也可以使用 eclipse 来执行上述目标。
第一步:点击运行配置。
第 2 步:创建一个新的 Maven 构建
第 3 步:更新构建详细信息,如图所示。
更多选项可以在
找到https://docs.jboss.org/jbossas/7/plugins/maven/latest/examples/deployment-example.html
【讨论】:
【参考方案9】:<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-war</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>$project.groupId</groupId>
<artifactId>$project.artifactId</artifactId>
<version>$project.version</version>
<type>$project.packaging</type>
<overWrite>true</overWrite>
<outputDirectory>C:\jboss-as-7.1.1.Final_AMGEN\jboss-as-7.1.1.Final\standalone\deployments</outputDirectory>
<destFileName>$project.build.finalName.$project.packaging</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
这里<outputDirectory>
"包含Jboss中部署文件夹的地址"</outputDirectory>
将给定的代码相应地放入pom.xml
【讨论】:
以上是关于如何从 Eclipse 将 Maven 项目的 WAR 部署到 JBoss 服务器?的主要内容,如果未能解决你的问题,请参考以下文章