利用Maven构建appfuse。

步骤如下:

1)Maven下载,下载apache-maven-2.2.1-bin.zip 下载地址:http://apache.freelamp.com/maven/binaries/apache-maven-2.2.1-bin.zip

2)下载appfuse支持包。下载地址: -2.0.2.zip(开发中需要的各个版本的jar包)

3)Maven环境搭建

1.解压缩apache-maven-2.2.1-bin.zip到你想安装的位置,如E:\java\apache-maven-2.2.1。

2.设置Maven系统环境变量:PATH中添加E:\java\apache-maven-2.2.1\bin。

3.确认Maven的安装,在命令行输入mvn - version提示Apache Maven 2.2.1即安装成功;

4)将下载下来的appfuse支持包解压。如:E:\java\m2\repository\

5)修改E:\java\apache-maven-2.2.1\conf\settings.xml

如下:

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
<localRepository>E:/java/m2/repository</localRepository>

6)新建项目:cmd 进入E:\workspace>

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse- basic-struts -DarchetypeVersion=2.0.2 -DgroupId=com.appsafe -DartifactId=myApp

(注: 可以到http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese 选择你所需要的套件,此处以Struts2为

例).出现BUILD SUCCESS为成功

7)获取appfuse源码:

先进入项目E:\workspace\myApp>    再运行mvn appfuse:full-source

8)修改项目的pom.xml中的 <jdbc.username> 和 <jdbc.password> 为你数据库的用户名和密码

9)生成eclipse项目 :mvn eclipse:eclipse

加入支持库:Window -> Preferences -> Java -> Build Path -> Classpath Variables -> New,Name输入M2_REPO,Path输入E:\java\m2\repository

10)试运行:mvn jetty:run

11)自动生成代码:此处需要下载模板。mvn appfuse:copy-templates此时会在src/test/resources/appfuse下面多出很多.ftl的文件。这就是模板文件。可以自定义修改。

12)创建表结构:

CREATE TABLE `Employee` (
`id` bigint(20) NOT NULL auto_increment,
`code` varchar(10) NOT NULL,
`dept` varchar(50) NOT NULL,
`name` varchar(20) NOT NULL,
`status` varchar(10) NOT NULL,
`telephone` varchar(20) default NULL,
`title` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

13)通过表来生成pojo:mvn appfuse:gen-model

删除@GeneratedValue(strategy=IDENTITY)就不报错了

14)修改pom.xml用于指示是否生成dao,manager........<genericCore>false</genericCore>为false生成dao,manager.........反之不生成。当改变了项目路径即不为org.appfuse时<fullSource>true</fullSource>.

<groupId>org.codehaus.mojo</groupId>
                <artifactId>appfuse-maven-plugin</artifactId>
                <version>${appfuse.version}</version>
                <configuration>
                   <!-- <genericCore>${amp.genericCore}</genericCore>
                   <fullSource>${amp.fullSource}</fullSource>-->
                    <genericCore>false</genericCore>
                    <fullSource>true</fullSource>
                </configuration>

15)自动生成代码:mvn appfuse:gen -Dentity=Employee

16) mvn appfuse:install -Dentity=Employee 把生成的源代码及配置文件写入到\target\classes

17)启动项目发现乱码问题:修改displaytag_zh_CN.properties其编码规则为utf-8

18)用tomcat启动时其实只需要:如建了一个项目包e:/publicWebapp只需要拷贝一下文件进入

【1】E:\workspace\myApp\src\main\webapp

【2】E:\workspace\myApp\target\classes

【3】新建lib放入E:\workspace\publicWebApp\WEB-INF

【5】使用命令: mvn dependency:copy-dependencies下载支持包。拷贝E:\workspace\myApp\target\dependency下的包至lib。

19)直接把依赖包拷贝到LIB下面然后启动项目。这时会报一个displaytag错误。其实是tomcat里的jsp.jar和appfuse依赖包里的jsp2.0-api.jar有重叠。删去依赖包中的jsp2.0-api.jar在启动就不报错了。

20)

下面就是一些goal命令了,这里和Maven1有不少不同,常用的命令有:

创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName

创建Maven的Web项目:mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp
编译源代码:mvn compile (或者:mvn compiler:compile)    
编译测试代码:mvn test-compile

运行测试:mvn test

产生site:mvn site
打包:mvn package
在本地Repository中安装jar:mvn install
清除产生的项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
组合使用goal命令,如只打包不测试:mvn -Dtest package
编译测试的内容:mvn test-compile
只打jar包:mvn jar:jar
只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile (这里要特别注意 -

skipping 的灵活运用,当然也可以用于其他组合命令) 
清除eclipse的一些系统设置:mvn eclipse:clean

根据pojo生成相关代码文件 :mvn appfuse:gen

(转自tof.j) * 如何安装Jar(或war)依赖到本地的数据仓库中?
下面具一个如何把dwr.jar包上传到本地数据仓库的例子,一看例子,大家就明了了。
- 下载dwr.jar包到本地,我把它放到了 C:/ (C盘根目录),

- 进入“命令行提示符”,进入到C:/,然后执行 mvn install:install-file -Dfile=dwr.jar -DgroupId=dwr.mocha -DartifactId=dwrDart -Dversion=1.0 -Dpackaging=jar 这样就把dwr传到了本地仓库中(我的本地仓库地址为:E:\app\m2\repository\),上传到仓库中的jar包名为dwrDart-1.0.jar,目录结构为dwr/mocha/dwrDart/1.0/dwrDart-1.0.jar

====================================================================

以下为网上一朋友记录的心得

之前部门配了一个Struts2的JAVA开发框架使用情况不是很理想,想通过Appfuse了解一下别人的做法,过程无比的艰辛。如果早知道APPFUSE需要不断的下载文件,我肯定不会用。

1、项目介绍
     appfuse是一个框架生成工具。如果全部设置妥当,可以通过几个简单的命令,达到生成整个JAVA开发框架的目的,想使用Struts,spring 或者其他的开源工具,而又缺少合理的开发框架的,可以一试。     APPFUSE是使用MAVEN来运行的。MAVEN和ANT类似。

2、项目的获得
     查看了很多资料,走了不少弯路。不少文章说“获得APPFUSE的两种方式,MAVEN下载或者CVS”,不太准确。
     最好还是下载Maven以后,再appfuse-dependencies-2.0.2.zip或者 appfuse-dependencies-2.0.1.zip解压到Maven的.m2\repository目录下面去 。
      环境:jdk1.5.0_11 ,MYSQL 5.0,TOMCAT 6.0.14,apache-maven-2.0.10,appfuse-dependencies-2.0.1.zip 。
      注意版本。MS因为“DLL HELL”经常受人抨击,但是JAVA的简直就是“Version hell under hell”

3、遇到的问题和解决
(1)环境变量设置。
     写批处理文件的时候,“SET MAVEN_HOME=D:\appfuse\apache-maven-2.0.10 ;”  ,后面多了一个分号,浪费了半个小时。

(2)MYSQL
     在服务管理器中启动失败。查看操作系统日志内容 “ Default storage engine (InnoDB) is not available”。
       网上搜索到一个解决方法:“更改 myini 里面Default storage engine=InnoDB修改为MYISAM ”,事实证明这么做不好,MYSQL是启动了,但是后面引发了其他的错误。
       最后的解决:解决方法:
     1、删除在MySQL安装目录下的Data目录中的ib_logfile0,ib_logfile1,INFO oDB\ibdata1
     2、重新启动MySQL的Service

(3)apache-tomcat-6.0.14.zip     
     跑的过程中,会自动下载apache-tomcat-6.0.14.zip ,为了节约时间,自己手动下载了一个,但是一直报错。后来发现是官方上的apache-tomcat-6.0.14.zip 出了问题,下载下来的只有4.8M,总共有6.2M。所以解压错误。

(4)SQL SERVER2005连接

把MYSQL更改为2005的时候,注意把TCP/IP打开,同时端口使用下面的IPALL 的TCP动态端口 。默认是2385

(5)SQL SERVER2005下,使用mvn appfuse:gen model命令生成POJO出错

Can't generate seam entities| org.hibernate.cfg.JDBCBinderException: Duplicate class name

因为默认了去生成DBO和SYS等用户下的所有表和视图。出现了重名的POJO,所以报错。
      target\test-classes\hibernate.reveng.xml   里面加入<schema-selection match-schema="dbo"/>

(6)生成DAO,SERVICE报错

Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized.
org.xml.sax.SAXNotRecognizedException: Property 'http://apache.org/xml/features/nonvalidating/load-external-dtd' is not recognized.

解决:更换APPFUSE 2.0.2为2.0.1。项目作者MATT拿这个BUG没辙。。。。

(7)生成奇怪的POJO

数据库里面有Table1,结果生成了Table1.java和Table1Id.java两个对象。导致后面的一系列问题。

解决:数据库里面取消双主键

最后评论一下:APPFUSE,实现了常用开源框架的自动生成,不论是Struts,struts2,springMVC等,都能直接生成从持久到逻辑和测试,甚至页面的基本文件。

==============================================================

只生成一个表的代码

1.pom.xml中增加 revengfile

<groupId>org.codehaus.mojo</groupId>
    <artifactId>appfuse-maven-plugin</artifactId>
     <version>${appfuse.version}</version>
     <configuration>
            <componentProperties>
            <revengfile>src/main/resources/hibernate.reveng.ftl</revengfile>
           </componentProperties>
           <genericCore>${amp.genericCore}</genericCore>
           <fullSource>${amp.fullSource}</fullSource>
    </configuration>
2. hibernate.reveng.ftl中增加
        <schema-selection match-schema="PA" match-table="TABLE_NAME" />
    (注意,一定要match-schema)
    3. src/main/resources/jdbc.properties中增加
       hibernatetool.metadatadialect=org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect
=================================================================
Ejb3PropertyGetAnnotation.ftl里面的内容generateJoinColumnsAnnotation(property)修改为
<#lt/>${pojo.generateJoinColumnsAnnotation(property,cfg)}

利用Maven构建appfuse。相关推荐

  1. MAVEN利用Profile构建不同环境的部署包

    通常,项目要在多个环境部署,每种环境都有各自的资源配置参数,比如:数据库连接.Redis服务器地址等等. 所以,各个环境打包出来的资源是不一样的,如果手动的修改,费时费力.我们可以利用MAVAN的pr ...

  2. 通向架构师的道路(第十九天)使用maven构建Spring工程

    一.前言 上次大家拿了我上传的工程后,有些人自己通过spring3,struts1.3,hibernate3的download的包自行去装配jar包到工程的WEB-INF\lib目录下.有些是通过我上 ...

  3. Apache Spark学习:利用Eclipse构建Spark集成开发环境

    介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上, 介绍如何利用Eclipse构建Spark集成开发环境 . 不建议大家使用eclips ...

  4. 用Maven构建Hadoop项目

    Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...

  5. Maven构建java项目

    本篇文章,我们会教你如何用maven创建一个java项目,学会如何导入到eclipse中,将该java项目打包成一个jar文件并成功执行. 关于maven:它是apache基金会推出的一个项目管理工具 ...

  6. [Gradle] 在 Eclipse 下利用 gradle 构建系统

    构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的.本文将向读者介绍一种全新的构建项目的方式 gradle,它简单.上手快,能大大节省项目的时间 ...

  7. 使Gradle构建更快 2016年2月5日奥列格Shelajev3评论 推特 inShare 70 上次我们谈到了构建系统,我们看着一些建议可能会使您的Maven构建更快。我们得到的结果是迷人的和对

    使Gradle构建更快 2016年2月5日 奥列格Shelajev 3评论 推特 inShare70 上次我们谈到了构建系统,我们看着一些建议可能会使您的Maven构建更快.我们得到的结果是迷人的和对 ...

  8. idea使用maven构建web应用

    关于idea的下载和安装以及maven的配置,网上资源很多.可以百度自行配置,本文主要介绍idea使用maven构建web应用,因为作者自己花费了一天的时间才成功到.所以将配置方法总结. 假设你已经下 ...

  9. 黑马旅游网项目总结与完善后端(非maven构建)

    项目介绍:仿黑马旅游网,项目不是用maven构建的项目,数据库连接池使用的是c3p0不是druid,操作操作sql用的不是jdbcTemplate而是Apache的DBUtlis工具,json工具用的 ...

  10. 转】用Maven构建Hadoop项目

    原博文出自于: http://blog.fens.me/hadoop-maven-eclipse/ 感谢! 用Maven构建Hadoop项目 Hadoop家族系列文章,主要介绍Hadoop家族产品,常 ...

最新文章

  1. docker基础文档(链接,下载,安装)
  2. TypeScript 的变量定义
  3. 分离圆环图显示百分比_Tableau制作圆环图
  4. Entity Framework 批量插入
  5. chart.js绘制精美的数据化图形--入门示例
  6. LeetCode--174.地下城游戏(动态规划)
  7. 信号完整性与电源完整性分析_电源完整性,信号完整性,你说哪个更重要一点?...
  8. LG_2051_[AHOI2009]中国象棋
  9. 一个酷炫的音乐播放界面
  10. Systrace 解析
  11. php微信公众号群发,php实现微信公众号无限群发,php信公众群发
  12. 绘制地图其实并不难!如何绘制地图?看看Smartbi的制作方法
  13. 极品-React中的DOM虚拟DOM,与deff算法,router
  14. 通过网线连接两台主机
  15. Codeforces 686 D - Kay and Snowflake
  16. 【云和恩墨大讲堂】杨俊 | 迁移神技XTTS-恩墨小王子再战32TB跨平台U2L
  17. 解决:电脑屏幕每隔几分钟就闪一次(瞬间黑屏一次),鼠标指针伴随着加载的状态(漏斗或者转圈),然后瞬间恢复正常
  18. mysql 中间件 atlas_MySQL中间件-Atlas
  19. 【设计模式】备忘录模式(以电影明日边缘为例)
  20. 【SSM】13-Spring中实现依赖注入的两种方式(xml和注解)

热门文章

  1. linux 对整个文件 url解码,linux shell实现 URL 编码/解码方法
  2. MATLAB-二次曲面
  3. 移动计算机笔试题,广东移动笔试题目
  4. 最新版Unity安装和启动教程
  5. 智能网联汽车 自动驾驶功能场地试验方法及要求
  6. 制作一个网站多少钱?2018最新网站制作明细表
  7. FPGA语法篇——Verilog 语法知识
  8. matlab绘制平滑曲线,matlab绘制平滑曲线
  9. [原创]电路仿真设计multisim 14安装,破解,汉化教程
  10. Adobe PDF虚拟打印机 如何添加