maven appFuse 建立 ssh 项目

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.jarJRE 目录下的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&amp;useUnicode=true&amp;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.dataTypeFactoryNamedbunit.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 启 动服务,测试自动生成的代码。现在启动服务,登录进去后,打开 查看用户 菜单,可以看到页面上有乱码出现了。这是因为字符集的问题。可以用 UltraEditorApplicationResources_zh.propertiesdisplaytag_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

 

 

猜你喜欢

转载自jeffery81521.iteye.com/blog/1484737