1. 参考http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese 生成项目
1 )运行
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0 -DgroupId=com.zzad -DartifactId=car4serp -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse
2)
mvn appfuse:full-source
3 )mvn
2. Error starting Sun's native2ascii 问题解决
复制JDK 目录下的lib 文件夹的tools.jar 到JRE 目录下的lib 文件夹下的ext 文件夹
( 另外一个更好的办法就是把JRE 的路径设置到JDK 的目录下)
Copying %Java_Home%/lib/tools.jar to %Java_Home%/jre/lib/ext/tools.jar fixed this problem.
(a better approach is to set up JRE path to the directory JDK)
经过分析:
今天使用Maven 创建Appfuse 的时候, 发现出现Error starting Sun's native2ascii
Maven 指向的是JRE 的目录,JRE 目录下没有tools.jar, 故找不到native2ascii
研究后发现Maven 指定的是../ 相对路径按道理能通过找寻上一级文件夹从而找到jdk 目录继而找到tools.jar 包
因此一般情况下是用JDK 里面的JRE 不会出现这个问题.
通过上面分析判断项目配置的JRE 不在JDK 的目录, 把tools.jar 文件放到JRE 目录lib 文件夹的ext 文件夹下
问题解决
2. 修改pom.xml 中的数据库连接参数
[INFO] [dbunit:operation {execution: test-compile}]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing database operation: CLEAN_INSERT
自动生成的代码中默认的数据库连接参数是mysql 的,如果是其他数据库,需要从pom.xml 前面复制一个对应数据库的配置文件下来,然后进行相应的修改。我本地使用的是Oracle 数据库,因此将mysql 的配置进行注释,加上了Oracle 的配置信息,修改后的配置如下所示:
<!-- Database settings -->
<!--
<dbunit.dataTypeFactoryName>org.dbunit.dataset.datatype.DefaultDataTypeFactory</dbunit.dataTypeFactoryName>-->
<!--
<dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
<hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
<jdbc.groupId>mysql</jdbc.groupId>
<jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
<jdbc.version>5.0.5</jdbc.version>
<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
<jdbc.url><![CDATA[jdbc:mysql://localhost/hinorelproject?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8]]></jdbc.url>
<jdbc.username>root</jdbc.username>
<jdbc.password></jdbc.password>-->
<!-- Oracle's configuration -->
< dbunit .dataTypeFactoryName > org.dbunit.ext.oracle.OracleDataTypeFactory </ dbunit.dataTypeFactoryName >
< dbunit .operation.type > CLEAN_INSERT </ dbunit.operation.type >
< dbunit .schema > CAR4SERP</ dbunit.schema > <!-- Make sure to capitalize the schema name -->
< hibernate .dialect > org.hibernate.dialect.Oracle9iDialect </ hibernate.dialect >
< jdbc .groupId > com.oracle </ jdbc.groupId >
< jdbc .artifactId > ojdbc14 </ jdbc.artifactId >
< jdbc .version > 9.2.0.1.0 </ jdbc.version >
< jdbc .driverClassName > oracle.jdbc.OracleDriver </ jdbc.driverClassName >
< jdbc .url ><![CDATA[ jdbc:oracle:thin:@localhost:1521:WJ ]]></ jdbc.url >
< jdbc .username > CAR4SERP</ jdbc.username >
< jdbc .password > CAR4SERP</ jdbc.password >
以上是我本地的数据库配置信息,注意:根据对mysql 的配置,而复制过来的Oracle 的配置信息中缺少 dbunit.operation.type 参数,可以将mysql 配置参数中的dbunit.operation.type 参数添加到 dbunit.dataTypeFactoryName 和dbunit.schema 之间。
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html
首先下载ojdbc14-10.2.0.4.0 .jar这个包,然后在cmd下输入以下
mvn install:install-file -DgroupId=com.oracle -DartifactIdojdbc14
-Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=C:\ojdbc14-10.2.0.4.0.jar
当然这里的-Dfile是指本地存放 ojdbc14-10.2.0.4.0.jar的位置,然后再把C:\ojdbc14-10.2.0.4.0.jar这个包复制到maven管理的本地库中,本人的maven管理库的路径C:\Documents and Settings\Administrator\.m2\repository\com\oracle\ojdbc14\10.2.0.4.0,所以把刚刚编译好的ojdbc14-10.2.0.4.0.jar放到上面路径
其次中pom.xml中写入
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0 </version>
<scope>provided</scope>
</dependency>
3. 测试自动生成的代码
修改了数据库配置之后,就可以运行自动生成的代码了,在新生成的工程的文件夹下执行mvn jetty:run-war 命令就可以了。在我这个例子中也就是在hinorelproject 文件夹下执行。此时因为用的是Oracle 的数据库,可能在工程中没有这些类,因此需要安装一下Oracle 的包文件就可以了,根据错误提示中的命令执行就可以了。
4. 执行mvn war:inplace 命令
执行这个命令之前可以将工程提交到版本控制库中。
5. 执行mvn jetty:run 命令
执行这个命令是在jetty 服务器中测试自动生成的工程,执行该命令之前需要先删除src\main\wabapp\WEB-INF\lib 文件夹和src\main\webapp\WEB-INF\classes\struts.xml 文件。然后再执行mvn jetty:run 命令。
6. 将自动生成的工程转换为IDEA 的工程
将工程转换为IDEA 工程,可以运行mvn eclipse:eclipse 命令。
7. 生成源文件
生成源文件之前需要先删除src\main\webapp\WEB-INF\lib 文件夹和src\main\webapp\WEB-INF\classes 文件夹。
然后再执行mvn appfuse:full-source 命令。生成源文件之后可以再执行mvn jetty:run 启 动服务,测试自动生成的代码。现在启动服务,登录进去后,打开“ 查看用户” 菜单,可以看到页面上有乱码出现了。这是因为字符集的问题。可以用 UltraEditor 将ApplicationResources_zh.properties 、displaytag_zh.properties 以 及errors_zh.properties 文件替换成Unicode 格式,再启动访问就可以了。
8. 中文指南
http://raibledesigns.com/wiki/Wiki.jsp?page=Articles_zh
http://raibledesigns.com/wiki/Wiki.jsp?page=CreateDAO_zh