`
albert0312
  • 浏览: 30087 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
配置好MAVEN_HOME,JAVA_HOME 这个就不废话了:P

------------------------------------------------------------------------------------------
步骤:(以下步均为在命令行的输入)
------------------------------------------------------------------------------------------
第一步 通过APPFUSE创建基于Struts 2 Basic的项目:
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.1 -DgroupId=com.yourproject -DartifactId=yourproject
运行创建骨架的命令,不同的框架选用不同的命令,以下是Struts2 Basic的创建命令,私服构件完成后的命令
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-struts -DarchetypeVersion=2.0.2 -DgroupId=yourproject -DartifactId=yourproject

mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DarchetypeVersion=2.0.1 -DgroupId=yourproject  -DartifactId=yourproject
以下是Spring Basic的创建命令
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=yourproject  -DartifactId=yourproject

说明:DartifactId:项目名称   DgroupId:包结构
执行完毕后CD到yourproject目录中

第二步:加入ECLIPSE工程文件,方便导入到ECLIPSE
mvn eclipse:eclipse

第三步:修改yourproject/pom.xml 配置文件
   1.修改生成代码方式,找到
      <genericCore>${amp.genericCore}</genericCore>
      <fullSource>${amp.fullSource}</fullSource>
      修改成:
       <genericCore>false</genericCore>
      <fullSource>true</fullSource>
      注意,这里必须吧pom.xml中的genericCore属性设为false 否则只会生成Action
   2.数据库配置信息(mysql在最底下)

第四步:生成MODEL类
先执行,这样会把默认需要的相关类先生成
mvn appfuse:full-source
然后执行
mvn appfuse:gen-model

第五步:修改/src/main/resources/hibernate.cfg.xml添加需要生成dao,service,action,jsp的模块

第六步:生成Dao,Service,Action
mvn appfuse:gen -Dentity=你的MODEL类
    这里可能会有一个提示找不到/src/main/resources/database.properties,  可以不用理会
  如果设置了很复杂的关联,这个生成过程会很痛苦,老是报targeting an unmapped的错,
  我的解决方法是找到关联的类比如USER,先把关系映射方法和属性删掉,
  然后在再把/src/main/resources/hibernate.cfg.xml其他的类声明删掉
  生成成功后再把这些加上去.
第七步: 把生成的配置文件写入到src目录下的配置文件中
mvn appfuse:install
最后执行mvn jetty:run-war 即可打包并运行项目

打完收工

总结:DAO和service的配置文件会生成到:/src/main/webapp/applicationContext.xml中
      struts的配置文件会生成到:/src/main/resources/struts.xml中
------------------------------------------------------------------------------------------
常用的命令介绍:
------------------------------------------------------------------------------------------
mvn appfuse:gen-model    根据数据库的表生成java类
mvn appfuse:gen          根据 POJOs.生成并安装 Tests, DAOs, Managers, Controllers and Views
mvn appfuse:full-source  把运行所需要的org.appfuse中的依赖类转换成你的包名称
mvn eclipse:eclipse      生成eclipse的项目的配置文件,用户可以直接把项目导入到eclipse中
mvn jetty:run-war        打包并且发布你的应用程序到Jetty, 查看在 http://localhost:8080
mvn appfuse:install      把生成的源代码及配置文件写入到src中
mvn integration-test     启动TOMCAT(或别的服务器)进行测试
mvn appfuse:remove       删除appfuse:gen.生成的代码
mvn appfuse:clean        清除target下的所有内容
------------------------------------------------------------------------------------------
需要注意的问题:
------------------------------------------------------------------------------------------
修改%maven_home%/conf/settings.xml
修改settings.xml中的localRepository,指向appfuse的解压目录

<settings>
  <!– localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
   –>
   <localRepository>d:/program/appfuse-dependencies-2.0.1</localRepository>

需要注意的上面的配置里说默认的资源库路径为~/.m2/repository,这是指用户的home目录,但如果这样设置在windows下,会产生一些问题,因为windows的用户目录在C:\Documents and Settings下,而这个目录有空格,所以最好直接指定另外的没有空格的英文路径。

由于ant 1.7存在的bug(Problem with appfuse:gen in windows ),因此如果用的是ant 1.7,确认一下$USER_HOME/.m2/repository是否存在,不存在手工创建,并把修改后的settings.xml 拷贝到~\.m2\repository下不然在执行后续操作mvn appfuse:full-source时候会报如下错误
java.lang.IllegalArgumentException: When not aligning with a user install you mu
st specify a local repository location using the setLocalRepositoryDirectory( Fi
le ) method.

1.必须吧pom.xml中的genericCore属性设为false 否则只会生成Action

3.运行后出现gzip  该问题是压缩HTML的包导致,暂时屏蔽掉相关filter

4.使用ehcache1.3以前的版本生成的代码界面字符会变成问号,这是因为maven无法下载正确的ehcache包造成,解决方法是修改/pom.xml ,在里面加上:
<dependency>
           <groupId>net.sf.ehcache</groupId>
           <artifactId>ehcache</artifactId>
           <version>${ehcache.version}</version>
       </dependency>
       <ehcache.version>1.4.1</ehcache.version>
后再生成代码

5.当某张数据表被修改需要更新相应的model时,只需执行mvn appfuse:gen -Dentity=yourmodel
  当添加新的数据表时间,除了执行mvn appfuse:gen -Dentity=yourmodel外,还需要执行
  mvn appfuse:install 来把DAO,STRUTS配置写入到SRC下的相应文件中.

6.如果希望生成的model类不在默认的model包根下,只需要在resources/hibernate.cfg.xml中修改想要生成的包路径就行,比如:
默认情况下UserInfo会生成到com.my.app.model下,把配置改成
<mapping class="com.my.app.model.user.UserInfo"/>
UserInfo会生成到com.my.app.model.user下。

7.使用Candy for Appfuse 插件时发现model都无法生成,
这是因为%MAVEN_HOME%\conf\settings.xml 中localRepository属性默认为~/.m2/repository
~即当前用户在系统中的用户目录,比如WINDOWS在c:\Documents and Settings\username
因为路径中包含空格,所以Candy找不到,解决方法就是在命令行操作

8.关于乱码的问题
对于APPFUSE生成的工程运行时乱码是很常见的现象,造成该现象的原因也有几种:
为了偷懒,这里引用一篇网上的文章:http://www.blogjava.net/43880800/archive/2006/11/18/81892.html

对于国际化文件*.properties文件的编辑,有两个ECLIPSE插件可以推荐:Properties Editor 和 ResourceBundleEditor
再次偷懒引用一篇网文:http://blog.csdn.net/lmjq/archive/2007/06/21/1660137.aspx

不过我的IDE有点问题,这两个都装上却不好使,不知道是怎么回事。用了个笨方法:写个批处理来做。内容如下:
echo begin encoding
start C:\Progra~1\Java\jdk1.6.0\bin\native2ascii -encoding UTF-8 d:\workspace\dayawa\src\ApplicationResources_zh.properties d:\workspace\dayawa\src\ApplicationResources_zh_CN.properties
echo done!

保存成 encodeProperties.bat 执行就行,当然,相关路径要设置成你的实际路径。

  9. 执行“mvn jetty:run-war”时,会根据POJO先删除数据库里的表再重建,如果不想对数据进行操作可以修改pom.xml,将<configuration>下的drop熟悉修改为 false。不过执行“mvn jetty:run-war”仍然会执行建表操作,出现大量的错误日志,不过没有影响。

  10. 执行“mvn jetty:run-war”时,会清空数据表的数据并插入默认的数据,默认的数据在%PROJECT_HOME%\src\main\ resources\default-data.xml配置,这个很讨厌。修改pom.xml中的<dbunit.operation.type>的配置为NONE可以屏蔽这部分操作。

 

ps:一个不错的blog,讲的都是关于maven:http://juvenshun.iteye.com/
PS:http://www.blogjava.net/shenlei/archive/2008/02/29/182885.html#FeedBack
ps:初学maven(2)-maven/artifactory/m2eclipse安装全过程http://www.blogjava.net/aoxj/archive/2008/08/28/225426.html
ps:结合maven进行项目架构
http://lxj8495138.iteye.com/category/46231?show_full=true
分享到:
评论

相关推荐

    MAVEN 搭建APPFUSE

    【MAVEN 搭建APPFUSE】是一个关于使用Maven构建基于AppFuse的应用程序的教程。AppFuse是一个开源项目,旨在简化Web应用程序的开发,它提供了一个基础框架,可以帮助开发者快速启动新项目,整合了Spring、Hibernate、...

    Appfuse1.9至2.0.2

    主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.

    appfuse

    首先,为了运行这个AppFuse 2.0实例,你需要确保你的开发环境中安装了Java Development Kit (JDK) 和 Apache Maven。Maven 是一个项目管理工具,用于处理依赖管理和构建流程。如果没有预装,可以从官方网站下载并...

    appfuse 学习笔记

    Appfuse 2.0 推荐使用 Maven 进行构建管理。安装 Maven 后,需要设置 `MAVEN_HOME` 环境变量,并将 Maven 的 `bin` 目录添加到系统 `PATH` 变量中。 #### 三、Maven 的基本使用 Maven 的安装相对简单: - **解压 ...

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

    使用 Maven 的 archetype:generate 命令创建一个新的 AppFuse 项目。在命令行中输入以下命令: ``` mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeGroupId=org.appfuse -...

    APPFUSE工具研究.doc

    AppFuse分为1.x和2.0两个主要版本,其中2.0版是重构建的,采用了Maven 2作为构建工具,而1.x版本则使用Ant。 Maven 2的引入带来了许多优势,包括自动下载依赖项、简化维护(因为所有组件可以一次编译)以及方便最终...

    Appfuse开发教程.rar

    Appfuse使用了Maven作为构建工具,结合Spring、Hibernate、Struts2等流行框架,为开发者提供了一个标准的架构模板。通过Appfuse,开发者可以快速地搭建起一个具备用户认证、权限管理等功能的基础应用。 在"Appfuse...

    Maven完全适用手册

    Maven2引入了预定义模板,允许用户自定义项目结构,类似于AppFuse,极大地提高了开发效率。 **5. 生命周期的概念** Maven2引入了明确的生命周期概念,如clean、compile、test、install和deploy等,每个阶段都有对应...

    Appfuse 2.doc

    本篇将重点介绍如何通过Maven下载Appfuse 2.0的源码,并进行简单的配置。 #### 二、下载Appfuse 2.0源码的方法 下载Appfuse 2.0源码有以下两种方式: 1. **通过CVS下载**:这种方式适用于想要深入研究代码版本...

    一个appfuse的应用

    AppFuse 使用Maven作为构建工具,整合了Spring、Hibernate、Struts2(或Spring MVC)等流行框架,简化了开发流程。 这个"一个appfuse的应用"是一个基于AppFuse框架构建的小型应用示例。由于描述中提到“一些jar包...

    maven导入appfuse架构生成代码

    由于appfuse主页的mvn自动生成项目架构代码无法显示,个中原因,你懂的~被墙了。所以在此制作了自动生成代码包,进入之后点击页面可以出现生成代码。

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    AppFuse 是一个开源项目,它提供了快速开发Java Web应用程序的基础框架。这个框架集成了Spring、Hibernate和Struts等主流技术,使得开发者能够迅速构建出符合MVC架构的应用。在最新的版本2.1.0-M2中,AppFuse 提供了...

    appfuse2学习日记

    - **定位**:AppFuse 更像是一个项目的骨架或模板,它通过集成各种工具和技术(如 Java, Maven, Struts 等),提供了快速构建 Web 应用的基础框架。这类似于使用 IDE 的向导功能来创建 Web 项目的过程。 #### 二、...

    可直接使用的appfuse项目

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...

    Maven 的41种骨架功能介绍

    ### Maven的41种骨架功能介绍 Maven作为一款强大的构建工具,在软件开发过程中扮演着极其重要的角色。它不仅能够帮助开发者自动化构建过程,还能通过其骨架(Archetype)功能来快速搭建项目的初始结构,极大地提高...

    maven2完全使用手册

    4. **预定义模板**:用户可以自定义项目模板,像使用Appfuse那样快速生成项目结构,提高开发效率。 5. **生命周期的引入**:Maven2引入了明确的生命周期概念,如clean、compile、test、package等,每个阶段都有对应...

Global site tag (gtag.js) - Google Analytics