[AppFuse] AppFuse使用手记-目录结构(三)



先说明一下,没找到官方文档,对maven也不熟悉,下面的部分完全是自己摸索总结的,如果有什么问题,欢迎指正。

AppFuse的目录结构大致如下:


%PROJECT_HOME%
├---src (1)
┆ ├---main
┆ ┆ ├---java (3)
┆ ┆ ├---resources (4)
┆ ┆ ├---webapp (5)
┆ ├---site
┆ ├---test (6)
┆ ┆ ├---java
┆ ┆ ├---resources
├---target (2)
┆ ├---appfuse
┆ ┆ ├---generated-sources (7)
┆ ├---classes (8)
┆ ├---reda-1.0-SNAPSHOT.war (9)
┆ ├---reda-1.0-SNAPSHOT (10)
┆ ├---surefire-reports (11)
┆ ├---test-classes (12)
┆ ├---war (13)
┆ ┆ ├---work
┆ ┆ ┆ ├---appfuse-struts-2.0.1
┆ ┆ ┆ ├---appfuse-web-common-2.0.1
┆ ├---warpath (14)
┆ ├---work (15)
┆ ┆ ├---jsp
┆ ┆ ├---webapp


(1) 源代码目录,我们要修改代码应该是在这个目录。
(2) 目标目录,这部分目录基本上是执行相关命令生成的。
(3) java源代码目录,包括POJO、Action等
(4) 资源目录,包括配置文件等
(5) web应用源代码目录
(6) 测试源代码目录
(7) appfuse自动生成的代码
(8) 源代码编译输出目录
(9) 项目的war
(10) 由(9)解压的目录
(11) 自动测试报表目录
(12) 自动测试编译输出目录
(13) war包解压目录
(14) war解压目录
(15) jetty发布目录


运行“mvn jetty:run-war”的顺序是:

1。(1)的代码编译输出到(8),等同于执行“mvn warpath:add-classes”。
2。生成(13)的war,只有(1)的部分不包括web应用。
3。(4)的资源文件native2ascii,同时发布到(8),等同于执行“mvn native2ascii:native2ascii”。
5。将(4)配置文件发布到(8),等同于执行“mvn resources:resources”。
6。(6)的代码编译输出到(12)。
7。(6)的资源文件native2ascii,同时发布到(12)。
8。自动测试生成测试报告到(11)。
9。生成(15)。
10。生成(13)。
11。将(15)打包生成(9)。

执行“mvn jetty:run-war”的相关日志信息,可以看出“mvn jetty:run-war”先后调用了那些命令。


[INFO] [warpath:add-classes {execution: default}]
[INFO] [aspectj:compile {execution: default}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-utf8}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-8859_1}]
[INFO] [resources:resources]
[INFO] [compiler:compile]
[INFO] [resources:testResources]

[INFO] [warpath:add-classes {execution: default}]
[INFO] [aspectj:compile {execution: default}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-utf8}]
[INFO] [native2ascii:native2ascii {execution: native2ascii-8859_1}]
[INFO] [resources:resources]
[INFO] [hibernate3:hbm2ddl {execution: default}]
[INFO] [dbunit:operation {execution: test}]
[INFO] [war:war]
[INFO] [jetty:run-war]

运行“mvn war:inplace”,可以将(5)生成。 但是(4)的资源文件和配置文件是不会同步到(5)下面。要将(4)的配置文件同步到(5)下,需要在运行“mvn war:inplace”前先执行“mvn resources:resources”,同于将(4)的资源文件同步到(5)下,需要在运行“mvn war:inplace”前先执行“mvn native2ascii:native2ascii”。

我们一般在(5)下进行开发(如果在(10)或者(15)下开发,运行“mvn jetty:run-war”会将代码冲掉),运行“mvn jetty:run”启动Web服务,需要注意的是必须删除src\main\webapp\WEB-INF\lib和src\main\webapp\WEB-INF\classes\struts.xml,否则会报错。如果习惯使用Tomcat,也可以将Tomcat的配置指向src\main\webapp,当然src\main\webapp\WEB-INF\lib和src\main\webapp\WEB-INF\classes\struts.xml就不需要删除了。

当然在运行“mvn appfuse:gen-model”和“mvn appfuse:gen -Dentity=Name”时,生成的文件都会安装到(15),只要再执行“mvn war:inplace”就可以了。
posted @ 2008-04-11 09:07  vanuan  阅读(110)  评论(0编辑  收藏  举报