利用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=publicCenter
(注: 可以到http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese 选择你所需要的套件,此处以Struts2为
例).出现BUILD SUCCESS为成功
7)获取appfuse源码:
先进入项目E:\workspace\publicCenter> 再运行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\publicCenter\src\main\webapp
【2】E:\workspace\publicCenter\target\classes
【3】新建lib放入E:\workspace\publicWebApp\WEB-INF
【5】使用命令: mvn dependency:copy-dependencies下载支持包。拷贝E:\workspace\publicCenter\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)}
分享到:
相关推荐
首先,为了运行这个AppFuse 2.0实例,你需要确保你的开发环境中安装了Java Development Kit (JDK) 和 Apache Maven。Maven 是一个项目管理工具,用于处理依赖管理和构建流程。如果没有预装,可以从官方网站下载并...
接下来,我们将按照以下步骤来搭建基于Oracle的Appfuse2项目: **步骤1:环境准备** 确保安装了Java JDK,设置好环境变量。同时,下载并安装Oracle数据库客户端,配置相应的tnsnames.ora文件以便连接到Oracle服务器...
本文档将详细介绍如何在三分钟内使用AppFuse与SpringMVC和MyBatis框架整合,搭建出一个基本的应用架构。 #### 二、准备工作 为了顺利进行AppFuse与SpringMVC+MyBatis的整合工作,首先需要确保以下环境已准备就绪:...
AppFuse分为1.x和2.0两个主要版本,其中2.0版是重构建的,采用了Maven 2作为构建工具,而1.x版本则使用Ant。 Maven 2的引入带来了许多优势,包括自动下载依赖项、简化维护(因为所有组件可以一次编译)以及方便最终...
- **定义与价值**:AppFuse 是一款开源项目,旨在利用一系列开源工具帮助开发者高效地搭建 Web 应用程序的基础架构。通过使用 AppFuse,开发人员可以在构建新的 Web 项目时大大节省在项目结构设置上的时间。 - **...
#### 一、环境搭建:JDK、Maven与MySQL准备 对于初次接触AppFuse 2.0的新手而言,首要任务是确保开发环境的正确搭建。这包括Java Development Kit(JDK)5或以上版本、Maven 2.09以及MySQL 5.x的安装。 **1. JDK 5...
完成以上步骤后,你已经成功搭建了一个基于AppFuse 2.1.0-M2的项目骨架。接下来,你可以根据实际需求进行业务逻辑开发、界面设计和数据库交互等操作。同时,记得将项目纳入源代码控制系统,如Subversion,以确保代码...
### Maven的41种骨架功能介绍 Maven作为一款强大的构建工具,在软件开发过程中扮演着极其重要的角色。它不仅能够帮助开发者自动化构建过程,还能通过其骨架(Archetype)功能来快速搭建项目的初始结构,极大地提高...
#### 三、搭建AppFuse项目 1. **生成项目骨架**:首先,需要通过Maven的命令行来生成项目的基本结构。在命令行中输入如下命令: ``` mvn archetype:generate -DarchetypeGroupId=org.appfuse.archetypes -...
Appfuse正是基于Maven的强大功能,提供了一个预配置的框架,集成了Spring、Hibernate、Struts等流行技术,使得开发者能够快速搭建Web应用的骨架,极大地提高了开发效率。通过熟练掌握Maven的使用,结合Appfuse的特性...
这部分内容对于初学者尤为重要,因为它覆盖了如何从零开始搭建基于 AppFuse 的项目,并介绍了 Maven 的基本概念,例如依赖管理、构建生命周期等。 #### 商业支持 (Commercial Support) 除了免费的社区支持之外,...
总的来说,AppFuse 是一个强大的工具,可以帮助Java开发者快速搭建Web应用,同时也是一个学习现代Java Web开发技术的好平台。通过实践这个小应用,你将深入理解Maven构建系统,以及如何在实际项目中整合和使用Spring...
通过Appfuse,开发者可以快速地搭建起一个具备用户认证、权限管理等功能的基础应用。 在"Appfuse开发教程.pdf"中,你可能会学习到以下关键知识点: 1. **Maven**:Maven是Apache项目的一个构建工具,它能够管理...
1. **安装与配置**:首先,你可能需要了解如何在你的开发环境中设置AppFuse,这可能涉及到Java SDK、Maven或者Gradle的安装,以及相关构建工具的配置。 2. **生成项目**:AppFuse 提供命令行工具或者在线服务来生成...