使用 Maven 3 设置 Struts2 EAR 项目

2024-04-10

我正在迁移自Apache Ant + Apache Ivy to Apache Maven用于新项目的生命周期管理。

我从未在正式版本中使用过 Maven,所以我对此完全是新手。

目前我已经安装并配置Maven 3 http://maven.apache.org/docs/3.1.0/release-notes.htmlM2Eclipse http://eclipse.org/m2e/插件,我创建了一个新的 Struts2 WAR 项目空白约定原型(struts2-archetype-convention) http://struts.apache.org/release/2.3.x/docs/struts-2-maven-archetypes.html#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29,我能够部署到的项目JBoss 7 https://www.jboss.org/jbossas.

在阅读了大量文章和 StackOverflow 答案后,我发现firstMaven的规则是:一个项目,一件工件;

然后,要使用 EAR,我需要三个项目:EAR, WAR, EJB; but 这个答案表明我需要 4 个项目 https://stackoverflow.com/a/1870287/1654265,不是三:一EAR, one WAR, one EJB,和一个PARENT。我认为 EJB 将是父级......所以第一个问题是:

  • 哪个是正确的方法?

现在我已经有了一个可以运行的 Struts2 WAR,第二个问题是:

  • 将我现有的 WAR 包含在 EAR 项目(或父项目,如果需要)中的最佳(最干净、常用)方法是什么?

手动创建它?生成一些其他的耳神器 or Java-EE-webapp 工件,然后添加依赖项 ?任何所需的假设 POM.xml 示例将不胜感激。


我最终使用了:

  1. JBoss Java EE 6 Web 应用程序原型 https://docs.jboss.org/author/display/AS7/Creating+your+own+application生成WebApp,由四个项目组成:Parent、EAR、EJB、WAR:

    mvn archetype:generate \
            -DarchetypeArtifactId=jboss-javaee6-webapp-archetype \
            -DarchetypeGroupId=org.jboss.spec.archetypes \
            -DarchetypeVersion=7.0.2.CR2
    
  2. Struts2 空白约定原型 http://struts.apache.org/docs/struts-2-maven-archetypes.html#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2-archetype-convention%29生成 WAR:

    mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
            -DartifactId=myWebApp \
            -DarchetypeGroupId=org.apache.struts \
            -DarchetypeArtifactId=struts2-archetype-convention \
            -DarchetypeVersion=<CURRENT_STRUTS_VERSION> \
            -DremoteRepositories=http://struts.apache.org
    
  3. 然后我手动将JBoss生成的WAR替换为Struts2生成的WAR。

我想这是最干净的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Maven 3 设置 Struts2 EAR 项目 的相关文章

随机推荐

  • 在没有窗口的windows桌面上绘制OpenGL

    我见过这样的事情 我想知道这是否可能 假设我运行我的应用程序 它会显示其下方的渲染结果 所以基本上 在没有窗口的情况下在屏幕上渲染 可能还是谎言 注意 想要在 Windows 和 C 中执行此操作 可以使用您的应用程序在其他应用程序的窗口上
  • Perl 函数中的引用返回值是否更好?

    与返回数组或哈希的引用相比 返回数组或哈希有哪些优缺点 对内存或执行时间有影响吗 两者在功能上有何区别 sub i return an array my a push things in a return a sub i return a
  • cudaMemcpyToSymbol 与 cudaMemcpy [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图找出
  • 我应该如何格式化 R mlogit 包的数据?

    我正在使用mlogit与 R 一起打包 使用以下方式导入我的数据后 t lt read csv junk csv header TRUE sep dec 并致电 x lt mlogit data t choice D shape long
  • 将接口方法作为参数传递

    Note 这很可能是非常C 特定语言问题 与以下无关WCF or web services at all 有3方ASMXWeb 服务 用于数据检索 我创建了一个名为的通用方法ExecuteCommand 用于针对 Web 服务的每个请求 该
  • FSharp.Data.JsonProvider - 从类型获取 json

    FSharp Data JsonProvider 提供了一种从 json 转换为 F 类型的方法 是否可以反向操作 即声明 FSharp Data JsonProvider 创建的类型之一的实例 将字段值设置为我需要的值 然后获取等效的 j
  • Pyenv 不自动激活

    我已经在我的环境中安装了 pyenv 直到这个周末 当我安装 Kivy 时 我的 pyenv 本地设置一直工作正常 但是现在 当我进入各个 python 项目目录时 pyenv 不会自动正确激活正确的 python 版本 E g 我像这样使
  • Spring Security 与 AcceptHeaderLocaleResolver 和 i18n

    我陷入困境 可能错过了文档中的某些内容或犯了一些小错误 Spring Security 3 0 5 已集成到我的 Spring MVC 3 0 5 应用程序中 AcceptHeaderLocaleResolver用于区域设置检测 除了安全错
  • Angular JS 2 npm 和 ng(Angular-Cli) 之间的区别(内置工具)

    在 AngularJS 2 中 NPM 和 NG Angular CLI 之间的主要区别是什么 如果通过 NPM 如果我们可以构建我们的应用程序并且它可以工作 那么 NG 构建 Angular cli 的需求是什么 npm start 与
  • SQLite3 .backup 和 .dump 命令是否锁定数据库?

    我能找到的唯一文档 backup and dump是由 help backup DB FILE Backup DB default main to FILE dump TABLE Dump the database in an SQL te
  • 使用泛型快速查找给定类的超级视图

    我想我正在与仿制药作斗争 我想创建简单的 UIView 扩展来递归地查找函数参数中传递的类的超级视图 我希望该函数返回可选的 显然包含 nil 或作为提供的类的实例可见的对象 extension UIView func superviewO
  • 强制 Internet Explorer 使用特定的 Java 运行时环境安装?

    当查看别人包含小程序的网页时 当我安装了多个 JRE 时 如何强制 Internet Explorer 6 0 使用特定的 JRE 首先 禁用当前安装的 Java 版本 要执行此操作 请转至控制面板 gt Java gt 高级 gt 浏览器
  • 没有要加载的文件——rest_client (Rails 3)

    当我做thin start 这是我得到的错误 thin start gt gt Using rack adapter rvm gems ruby 1 9 2 p0 gems activesupport 3 0 9 lib active su
  • 尾递归函数上的 StackOverflowError

    当我使用 avg bids 4000 10 5 调用以下 Clojure 代码时 会导致 java lang StackOverflowError 我试图找出原因 因为 sum bids 是作为尾递归函数编写的 所以应该可以工作 使用 Cl
  • 如何允许 html 返回 angular2 管道?

    我有一个返回 html 字符串的管道 但是字符串输出可能会作为安全默认值进行转义 我确信必须有一个选项来允许使用 html 但当我搜索文档时找不到它 我怎样才能告诉管道允许渲染实际的 html 使用绑定innerHTML https dev
  • 转换 boost::variant 类型的 std::vector

    我如何实现下面的函数来从矢量转换Value to a Container 我想断言 如果不是所有成员values属于相同类型 即向量包含字符串和整数的混合 这是因为该函数的返回值是std vector
  • 发布签名的 Android 应用程序,Google Plus 登录和 Google 地图无法正常工作

    1 我正在使用谷歌 登录 and 谷歌地图在我的android应用程序中 2 在调试应用程序时从Android Studio到真实设备 移动 Google plus登录和Google Map工作正常 一切正常 Problem 1 Build
  • 检查 Ember Handlebar If 块助手中的值是否等于

    我们如何检查值是否相等ember js http www emberjs com的 If 块助手 if person John 我们如何在车把上执行上述操作 The if helper 只能测试属性 不能测试任意表达式 因此 在这种情况下
  • 在nodeJs socket.io中,webstorm中的方法未解决

    我正在节点中学习socket io 并且我已经使用 安装了该模块 npm install socket io save 这是我的代码 var app require express var http require http Server
  • 使用 Maven 3 设置 Struts2 EAR 项目

    我正在迁移自Apache Ant Apache Ivy to Apache Maven用于新项目的生命周期管理 我从未在正式版本中使用过 Maven 所以我对此完全是新手 目前我已经安装并配置Maven 3 http maven apach