[原创翻译]Maven2 (for AppFuse)新手入门[AppFuse 2.0文档-7]

摘要:
本文讨论了如何设置AppFuse所使用的Maven环境,并对Maven做了简单介绍。
根据文章内容,可以看到本文涉及的主要是在Eclipse+Candy+maven2环境里的设置—译者
Maven2 (for AppFuse )新手入门
 
标题
[原创翻译 ]Maven2 (for AppFuse)新手入门[AppFuse 2.0文档-7]
 
摘要:
本文讨论了如何设置AppFuse所使用的Maven环境,并对Maven做了简单介绍。
根据文章内容,可以看到本文涉及的主要是在Eclipse+Candy+maven2环境里的设置—译者
 
作者: Added by Nathan Anderson , last edited by Duncan Jauncey on Jul 10, 2007 06:04
翻译者: 陈海青(josonchen)
日期:2007.10.30
 
英文版网址 http://appfuse.org/display/APF/ Maven+for+Newbies
 
中文版:
 
 
Maven入门
Added by Nathan Anderson , last edited by Duncan Jauncey on Jul 10, 2007 06:04
象我在 AppFuse 1.9.x 的使用过程中积累经验一样,本页也是有意来记录我在使用 Maven AppFuse 2.x 使用过程中的经验,并逐渐过渡到 web 应用的开发。
下面是关于我的一点介绍 . 我是 Sum-Ware公司 的开发主管 , 这就意味着我要确保其他的开发人员和网管人员有事做,同时我要去填补工作中的空白 .
我才用两种不同的途径学习 AppFuse 2.x. 在工作时,我使用 Windows+ Sun Java 1.6 + Eclipse 3.2 的环境,开发 "appfuse-basic-struts" 结构的项目 . 在家里,我开发另一个项目,使用 Ubuntu +Sun Java 1.6 +Eclipse 3.2 的环境 ( 这个项目也许要切换到 IDEA— 谁知道呢 ). 这个项目是基于 "appfuse-modular-struts" 架构的 .
我喜欢用 Struts 2 (至少目前如此)是因为我觉得它较简单。我在学习过程中喜欢将变化的各类因素限制在自己能掌控的范围内。

Targets Goals
  • 我注意到的第一件事是maven "goals"ant"targets"的异同。 Goals 非常酷,因为它们是通用的,可用于所有的maven项目, 但是targets更容易描述,因为他们仅存在于build.xml 文件中 (或多或少). Maven 2 这篇文章里有一张很不错的关于常用的goals及其应用的列表.
  • 即时在最初还不太会使用Maven 时,我也要说它是非常容易入门的. 一旦完成了前期安装 (做起来并不困难), 我在10分钟之内就让AppFuse运行起来了,并且其中的大部分时间是用在maven下载依赖文件上(喝咖啡的时间 :).
整合 IDE
  • 整合AppFuse2.x后,Eclipse工作地很好,然而我还是遇到一些麻烦事:
    • 在建立我的POJO时,我不得不花费时间清理项目,以便使Eclipse 能够识别annotations
    • 但我为项目运行命令建立M2_REPO 等时,命令也运行了,我也在项目里看到了罗列的依赖的JAR包,但就是无法解决上述的关于annotation 的问题.
    • 最后,我不得不手工添加了M2_REPO 环境变量,然后一切正常了.
  • 我没在IDEA 上使用AppFuse 2.x ,但我听说比在Eclipse上要好.
下载依赖包 (Dependency)
  • 这个过程很酷同时又有些怪异.,下载时我看到了maven报告了大量的警告或错误信息,但奇怪的是,一切均运行良好,以下是一些输出信息的例子:
·           [INFO] Wrote settings to /home/nathan/src/fetch-calendar/web/.settings/org.eclipse.jdt.core.prefs
·           [INFO] Wrote Eclipse project for "fetch-calendar-webapp" to /home/nathan/src/fetch-calendar/web.
·           [INFO]
·                  Sources for some artifacts are not available.
·                  List of artifacts without a source archive:
·                    o org.apache.struts:struts2-core:2.0.6
·                    o commons-fileupload:commons-fileupload:1.1.1
·                    o opensymphony:clickstream:1.0.2
·                    o org.apache.struts:struts2-spring-plugin:2.0.6
·                    o velocity-tools:velocity-tools-view:1.0
·                    o javax.servlet:jsp-api:2.0
·                    o org.apache.struts:struts2-codebehind-plugin:2.0.6
·                    o freemarker:freemarker:2.3.8
·                    o org.tuckey:urlrewrite:2.5.2
·            
·           [INFO]
·           [INFO]
·           [INFO] ------------------------------------------------------------------------
·           [INFO] Reactor Summary:
·           [INFO] ------------------------------------------------------------------------
·           [INFO] AppFuse Modular Application ........................... SUCCESS [6.338s]
·           [INFO] AppFuse Modular Application - Core .................... SUCCESS [57.907s]
·           [INFO] AppFuse Modular Application - Web (Struts 2) .......... SUCCESS [2:20.721s]
·           [INFO] ------------------------------------------------------------------------
·           [INFO] ------------------------------------------------------------------------
·           [INFO] BUILD SUCCESSFUL
·           [INFO] ------------------------------------------------------------------------
·           [INFO] Total time: 3 minutes 27 seconds
·           [INFO] Finished at: Tue Apr 03 22:05:12 PDT 2007
·           [INFO] Final Memory: 48M/63M
[INFO] ------------------------------------------------------------------------
怎么会 struts2-core 下载失败呢 , 然而我在运行 "mvn jetty:run-war" 却一些正常 ? 不知该如何是好了 ... :?
好吧 ... 我没话说了 . 我觉得可能是无法取得源码包 , 但我的运行包的确是已经正确下载了 . 也许有人能看到这些并能避免出现类似问题
新项目生成了
我相信自动生成新项目里的 App.java AppTest.java ( 以及 modular archtypes 里的 Core.java) 确有其用,但我却不知道其用途,有人能帮我解答吗?
Maven HTTP 代理服务器设置
如果你的局域网使用 HTTP 代理服务器上网 ( 注意,并不是 Maven 仓库代理 (repository proxy), 二者是有区别的 ) ,在运行 maven 是会看到错误信息: 'Error transferring file'. 解决办法是,找到你的代理服务器的地址和端口,加到命令里,格式为 : -DproxySet=true -DproxyHost=< 你的代理服务器主机地址 > -DproxyPort=< 代理服务的端口 >
注意 : 如果你尝试了数次均连接失败 , 那么 maven 中心仓库就会被自动列到黑名单中,使用 -U 命令行参数可以进行强制连接 .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值