javaweb⽬录结构_基于maven的Java项⽬⽬录结构
在JavaWeb的开发中,由于需要⽤到很多的包,所以出现了⼀种专门对包进⾏管理和下载的⼯具,成为⾃动化构建⼯具。在Java 平台,⾃动化构建⼯具的发展经历了Make ==> Ant ==> Maven ==> Gradle(最新)。 本⽂以maven为研究对象,探究基于Maven⼯具构建的Java 项⽬的基本⽬录结构,以及官⽅所提供的⼀些maven项⽬模板。
1. 基于Maven的基本项⽬⽬录
Maven默认约定了⼀套⽬录结构,在通过Maven创建了项⽬以后,项⽬的⽬录结构就是以秋季喝什么茶
这套⽬录结构作为模板创建的。虽然Maven提供了很多的模板,但是基本的⽬录结构都是固定的。如下所⽰。
${badir}
|-- l
|-- src
| |-- main
| | -- java
|| 项⽬源码
| | `-- resources
|| 项⽬配置⽂件 .xml等
| | `-- filters
| | `-- test
| | `-- java
| | `-- resources
| | `-- filters
在使⽤maven来创建的项⽬,默认会⾃动创建src/main/等级别的结构。其中各个⽬录所存放的内容如下:src/main/java 项⽬的源代码所在的⽬录
src/main/resources 项⽬的资源⽂件所在的⽬录
src/main/filters 项⽬的资源过滤⽂件所在的⽬录
src/main/webapp 如果是web项⽬,则该⽬录是web应⽤源代码所在的⽬录,⽐如html⽂件和l等都在该⽬录下。
src/test/java 测试代码所在的⽬录
src/test/resources 测试相关的资源⽂件所在的⽬录
src/test/filters 测试相关的资源过滤⽂件所在的⽬录
2. 基于Maven模板构建的三种常见Java项⽬
新建Maven project项⽬时,需要选择archetype。archetype的意思就是模板原型的意思,原型是⼀个Maven项⽬模板⼯具包。原型将帮助作者为⽤户创建Maven项⽬模板,规范了项⽬的结构。根据所创建项⽬的不同,常见的三种模板有:maven-archetype-quickstart
maven-archetype-webapp
cocoon-22-archetype-webapp
2.1 maven⼯程样例 maven-archetype-quickstart ⽬录结构
使⽤idea,基于maven-archetype-quickstart模板,创建⼀个名为quickStart的项⽬之后,得到的⽬录如下所⽰:
默认的Archetype,基本内容包括:⼀个包含junit依赖声明的l
src/main/java主代码⽬录及⼀个名为App的类
src/test/java测试代码⽬录及⼀个名为AppTest的测试⽤例。
从上图的结构分析可知,该模板适⽤于简单的Java项⽬,且没有相关的resources⽂件夹,说明此模板⽤于简单类的使⽤。如果涉及到相关配置⽂件,需要⾃定义资源⽂件夹,并指定为Resource。
2.2 maven⼯程样例 maven-archetype-webapp
使⽤idea,基于maven-archetype-quickstart模板,创建⼀个名为webapp的项⽬之后,得到的⽬录如下所⽰:
⼀个最简单的Maven war项⽬模板,当需要快速创建⼀个Web应⽤的时候可以使⽤它。⽣成的项⽬内容包括:⼀个packaging为war且带有junit依赖声明的l
src/main/webapp/⽬录
src/main/webapp/index.jsp⽂件
src/main/webapp/读书日海报
l⽂件
从上⾯的分析可知,该⽬录结构中,在src下,仅仅含有⼀个webapp的⽬录,其中的内容是前端的内容。如果需要写Java后端的代码,只需在main⽬录下,创建x.controller等相关⽬录结构即可。
2.3 maven⼯程样例 cocoon-22-archetype-webapp
使⽤idea,基于cocoon-22-archetype-webapp模板,创建⼀个名为cocoonWebapp的项⽬之后,得到的⽬录如下所⽰:
⼀个最简单的Maven war项⽬模板,当需要快速创建⼀个Web应⽤的时候可以使⽤它。⽣成的项⽬内容包括:⼀个packaging为war的l
src/main/webapp/resources⽬录
src/main/webapp/WEB-INF⽬录
src/main/webapp/cad直角变圆弧
l⽂件
src/main/webapp/l⽂件
src/main/webapp/l⽂件
通过上⾯的分析可知,该模板提供了webapp中常见的resource⽂件夹,⽤于放置配置⽂件。以及在webapp中常见的⼀些配置⽂件,如⽇志配置⽂件l,Spring的配置⽂件l以及web⼯程的配置⽂件l。基于该模板开发,相关Java代码可以在src/main⽬录下,新建java/com/xxx/xxx结构的⽬录即可。
3. Maven 的41种⾻架功能介绍
Maven 的41种⾻架:
1: internal -> appfu-basic-jsf (创建⼀个基于Hibernate,Spring和JSF的Web应⽤程序的原型)
2: internal -> appfu-basic-spring (创建⼀个基于Hibernate,Spring和Spring MVC的Web应⽤程序的原型)
3: internal -> appfu-basic-struts (创建⼀个基于Hibernate,Spring和Struts 2的Web应⽤程序的原型)
4: internal -> appfu-basic-tapestry (创建⼀个基于Hibernate, Spring 和 Tapestry 4的Web应⽤程序的原型)
5: internal -> appfu-core (创建⼀个基于 Hibernate and Spring 和 XFire的jar应⽤程序的原型)
6: internal -> appfu-modular-jsf (创建⼀个基于 Hibernate,Spring和JSF的模块化应⽤原型)
7: internal -> appfu-modular-spring (创建⼀个基于 Hibernate, Spring 和 Spring MVC 的模块化应⽤原型)
8: internal -> appfu-modular-struts (创建⼀个基于 Hibernate, Spring 和 Struts 2 的模块化应⽤退伍不褪色
原型)
9: internal -> appfu-modular-tapestry (创建⼀个基于 Hibernate, Spring 和 Tapestry 4 的模块化应⽤原型)
10: internal -> maven-archetype-j2ee-simple (⼀个简单的J2EE的Java应⽤程序)
11: internal -> maven-archetype-marmalade-mojo (⼀个Maven的 插件开发项⽬ using marmalade) 12: internal -> maven-archetype-mojo (⼀个Maven的Java插件开发项⽬)
13: internal ->产前阵痛
maven-archetype-portlet (⼀个简单的portlet应⽤程序)
14: internal -> maven-archetype-profiles (基本轮廓,和maven-archetype-quickStart类似)
15: internal -> maven-archetype-quickstart (Maven⼯程样例)
16: internal -> maven-archetype-site-simple (简单的⽹站⽣成项⽬)
17: internal -> maven-archetype-site (更复杂的⽹站项⽬)
18: internal -> maven-archetype-webapp (⼀个简单的Java Web应⽤程序)
19: internal -> jini-rvice-archetype (Archetype for Jini rvice project creation)
20: internal -> softeu-archetype-am (JSF+Facelets+Seam Archetype)
21: internal -> softeu-archetype-am-simple (JSF+Facelets+Seam (⽆残留) 原型)
22: internal -> softeu-archetype-jsf (JSF+Facelets 原型)
23: internal -> jpa-maven-archetype (JPA 应⽤程序)
24: internal -> spring-osgi-bundle-archetype (Spring-OSGi 原型)
25: internal -> confluence-plugin-archetype (Atlassian 聚合插件原型)
26: internal -> jira-plugin-archetype (Atlassian JIRA 插件原型)
27: internal -> maven-archetype-har (Hibernate 存档)
2写声音的作文
8: internal -> maven-archetype-sar (JBoss 服务存档)
29: internal -> wicket-archetype-quickstart (⼀个简单的Apache Wicket的项⽬)
30: int教师培训工作总结
ernal -> scala-archetype-simple (⼀个简单的scala的项⽬)
31: internal -> lift-archetype-blank (⼀个 blank/empty liftweb 项⽬)
32: internal -> lift-archetype-basic (基本(liftweb)项⽬)
36: internal -> myfaces-archetype-helloworld (使⽤MyFaces的⼀个简单的原型)
37: internal -> myfaces-archetype-helloworld-facelets (⼀个使⽤MyFaces和Facelets的简单原型)
38: internal -> myfaces-archetype-trinidad (⼀个使⽤MyFaces和Trinidad的简单原型)
39: internal -> myfaces-archetype-jsfcomponents (⼀种使⽤MyFaces创建定制JSF组件的简单的原型)
40: internal -> gmaven-archety鲜蘑菇的做法大全
pe-basic (Groovy的基本原型)
41: internal -> gmaven-archetype-mojo (Groovy mojo 原型)
总结
本⽂以Maven⼯具,这种基于J白芸豆的功效
ava平台的⾃动化构建⼯具为引⼦,介绍了Maven标准下的Java项⽬基本结构,然后介绍了常见的三种Maven模板创建的⽬录结构,最后简要介绍了其它的四⼗⼀中常见的模板⽬录。