Maven2 (for AppFuse)新手入门

摘要:
本文讨论了如何设置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)
( http://www.chq.name )
( http://www.hhrz.org )
日期: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工作地很好,然而我还是遇到一些麻烦事:
          o 在建立我的POJO时,我不得不花费时间清理项目,以便使Eclipse 能够识别annotations
          o 但我为项目运行命令建立M2_REPO 等时,命令也运行了,我也在项目里看到了罗列的依赖的JAR包,但就是无法解决上述的关于annotation 的问题.
          o 最后,我不得不手工添加了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 命令行参数可以进行强制连接.

你可能感兴趣的:(eclipse,maven,freemarker,struts,application,Appfuse)