`
true_cp
  • 浏览: 14176 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类

AppFuse 学习手记 第1页 安装

    博客分类:
  • Java
阅读更多

如果你或你的团队至今为止还没有搭建一个完整的JavaEE应用程序框架,如SSH(Struts+Spring+Hibernate),而你的老板却在摧促你尽快提交下一个项目的技术说明书,也许这个时候你应该考虑一下AppFuse ,一个开箱即用(Out of box)的,完整的JavaEE应用程序框架。它以Spring为核心,构建了一个完整的JavaEE应用程序的雏形,允许安照编程人员的习惯使用不同的前端技术(如Struts2,JSF等)和ORM工具(如Hibernate,iBates等)。

根据AppFuse首页的介绍,其作者Matt Raible是一位崇尚敏捷方法的Java大牛与RoR爱好者。在看过AppFuse一部分代码之后,确实有一种“原来可以这样做。。。”的感觉。如果你现在不需要一个新的JavaEE应用程序框架,也不妨下载其源码学习一下大师级的JavaEE之道。

废话完毕。现在开始进入正题。在所有事情开始之前,我们要做的第一件事就是把AppFuse开发环境部署到本地的机器上来。(其实,当你完成这件事情以后,你会发现你已经完成了一半 所有要做的事情:P) 在AppFuse的主页上有一篇QuickStart ,很详细的说明了把AppFuse开发部署到本地的每一个步骤,但是其中文版本打开之后是乱码。所以我在这里结合自己的经验也写了一个简单的说明,希望能与官方版本互为补充。

一、安装配置Maven2

与大多数开发工具不同,AppFuse并没有提供二进制包或源码的打包下载,它只提供了一个Maven2的工程脚本来从官方的仓库(Repository)中下载并自动配置好环境。(听上去很方便,不,他是恶梦的开始-_-!)

所以首先我们要做的就是从Apache下载Maven2 ,解压并放到你硬盘上的某个位置,把bin目录下的mvn.bat 文件的路径放到PATH中。

二、下载工程脚本

AppFuse提供了几种默认组合 供选择使用,(其实主要是前端技术不同的封装)包括了

  • Struts2版本
  • JSF版本
  • Tapestry版本
  • Spring MVC版本

其中,每个版本各有两种模式:

  • Basic模式是提供了一个完整B/S程序的基本框架。
  • Modular模式把后端(core,包括Spring和ORM)与前端(web,包括web框架)分离出来,为需要使用其它前端技术(如FLEX,WAP,RCP)的用户提供方便。

确定你所需要的版本,把表格中对应的mvn命令Copy下来,在命令行执行它。在那一长串命令中有一个"-DartifactId=myproject"的参数设置,表示会在命令的执行位置新建一个名为myproject的文件夹,作为下载下来的AppFuse程序的主目录。

接下来,把所有窗口最小化,可以去找朋友聊聊天,可以去外面抽根烟,溜达溜达,但是千万不要坐在电脑前傻傻的观察那慢得令人吐血的下载进度。Maven2会把所有有Dependencies的Artificiality全部从位于美利坚的官方仓库使用单线程方式下载下来,我用整整4个多小时,才下载到本次下载的目的——一个大小为43kb的pom.xml 文件,而不是官方Quickstart中提到的一杯咖啡的时间。更不幸的是,在下载大文件的时候,比如2mb以上,Maven常常会掉线并卡在哪里一动不动,这时候你要果断的按下Ctrl+C,使用迅雷之类的下载工具把Console上提示的正在下载的文件下下来,并放到本地的Repository里面去,通常是"C:\Documents and Settings\UserName\.m2\repository"的对应路径下。如果要在本地多台机子上使用Maven的话,可以配置一个Proxy以大大提高工作效率。

如果你跟我一样幸运可以看到了Build Successfully的话,那么你应该可以在myproject文件夹下发现这几个文件:image

三、下载AppFuse

AppFuse的下载仍然是通过Maven2来完成(是的,再一次漫长的等待,更加的漫长。。。),而且将下载完成后的部署与测试也一并完成。所以在下载之前,我们要为之准备运行的环境。

首先是Mysql,确认你的Mysqld已经启动并正常运行。AppFuse默认使用Mysql,如果你要使用别的数据库,那么请修改pom.xml的数据源配置。

接下来是应用服务器。在官方QuickStart并没有提到需要配置服务器,因为跟据默认配置会自动下载一个Tomcat5.5在临时目录并使用它来启动服务。如果你的本地环境上已经装有Tomcat了,那么大可不必多此一举。这里我简单介绍一下如何使用本地的Tomcat。首先确认%Catalina_HOME%配置正常,然后打开pom.xml文件,找到<groupId>org.codehaus.cargo</groupId>这个节点,把<home>节点的注释去掉,再把<zipUrlInstaller>节点给注释掉就可以了。

准备完之后,在myproject文件夹的命令行下,执行mvn命令。然后。。。等待。。。

四、运行AppFuse

终于,亲切的Build Successfully再次出现了,一天也差不多要过去了,现在让我们来试运行一遍AppFuse吧。在刚才新建的目录下输入"mvn jetty:run-war"使用内置的Jetty服务器来启动AppFuse,打开浏览器访问"http://localhost:8080 ",使用"admin:admin"登陆。

经过一天的折腾,总算把AppFuse请到了我们的硬盘上。其实步骤上说起来很简单:

  1. 运行mvn archetype:create命令
  2. 进入工程主文件夹
  3. 启动mysql, 修改pom.xml文件
  4. 运行mvn
  5. 运行mvn jetty:run-war

接下来的路恐怕更为坚险曲折。但是,为了以后不再发明轮子(Don't Reinvent the Wheel),我们只有去发明一只够先进够耐用轮子。

 

题外话:第一次接触Maven,感觉像这东西像小叮当的口袋一样无所不能,像灭绝的恐龙一样巨大无比。终于可以理解为什么Configuration Manage也可以是一个独立的工种了。没有程序员会愿意去维护天书般的配置脚本,一大堆版本号,还有苍海桑田的开发环境-_-!

分享到:
评论

相关推荐

    appfuse学习笔记(一)安装部署

    **AppFuse 学习笔记(一):安装与部署** AppFuse 是一个开源项目,它提供了一种快速构建企业级 Web 应用程序的方式。它使用了多种流行的技术栈,如 Spring Boot、Hibernate、Thymeleaf 和 Maven,使得开发者可以更...

    appfuse 学习笔记

    ### Appfuse 学习笔记 #### 一、Appfuse 简介 Appfuse 是一个开源框架,旨在帮助开发者高效地构建企业级应用。通过提供一套完善的架构模板、最佳实践和技术栈组合,使得开发者能够专注于业务逻辑的实现,而不是...

    appfuse

    AppFuse 是一个开源项目,旨在简化Java Web应用程序的开发过程。它提供了一个基础框架,集成了许多流行的开源库,如Spring、Hibernate、Struts或Spring Boot等,帮助开发者快速搭建应用骨架。AppFuse 可以根据选定的...

    appfuse2学习日记

    - **目的**:JDK5 是 AppFuse 运行的基本环境之一,确保正确安装 JDK5 并且设置 `JAVA_HOME` 环境变量指向 JDK 而非 JRE 目录。 - **下载链接**:http://java.sun.com/javase/downloads/index_jdk5.jsp ##### 2. ...

    AppFuse学习笔记(J2EE入门级框架)

    【AppFuse 框架详解】 AppFuse 是一个由 Matt Raible 创建的开源项目,它为初学者提供了一个基础的 J2EE 框架,用于演示如何集成多个流行的技术,如 ...AppFuse 不仅是一个框架,更是一个学习 J2EE 技术的良好起点。

    appfuse学习笔记(二)新建模块

    创建AppFuse模块的第一步是确定模块的需求和范围。这包括定义模块的功能、接口以及与其他模块的交互方式。然后,我们可以利用AppFuse提供的命令行工具或者手动操作来生成模块的基础结构。这通常涉及以下步骤: 1. *...

    APPFUSE工具研究.doc

    AppFuse 是一个基于Java平台的开源项目,旨在加速和简化Web应用程序的开发。它通过集成各种流行框架,如Struts、Spring、Hibernate等,提供了一个项目骨架,使得开发者能够快速搭建新项目的结构。AppFuse分为1.x和...

    AppFuse

    AppFuse是一个用于启动J2EE项目的工具包,它提供了一种快速而简便的方法来构建基于Java的应用程序。该工具包由Matt Raible创建,他在网络开发领域拥有丰富的经验,并且是多个开源项目的贡献者,包括Roller Weblogger...

    AppFuse学习笔记

    AppFuse 是一个开源项目,专为加速 J2EE 应用程序开发而设计。它集成了多种流行的技术,如 Ant 构建工具、Tapestry 表现层框架、Hibernate 持久层框架、Spring 事务管理和服务层以及 Acegi 安全管理。本文将详细介绍...

    SSH学习及开发框架-appfuse

    appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...

    appfuse1.4-architecture

    06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬

    参考appfuse学习实例

    ssh 博文链接:https://melet.iteye.com/blog/104496

Global site tag (gtag.js) - Google Analytics