对于Maven所用的项目结构,称为Maven标准的目录结构,不包含git

一.一个典型的源代码结构:

/ [project-name]
README.txt
LICENSE.txt
pom.xml
/src
/mian
/java Java source code for your project
/scala If you use other languages,they go at the same level
/resources Resources for your project
/filters Resource filter files
/assembly Assembly descriptors
/config Configuration files
/webapp Web application resources
/test
/java Test sources
/resources Test resources
/filters Test resource filters
/site Source for you project website
/doc Any other documentation
/lib
/runtime Libraries your project needs at run time
/test Libraries required to run tests
/build Libraries required to build your project

如果使用Maven子项目的话,应该知道每个子项目都在项目根目录的一个目录中,子项目也遵循Maven标准的目录结构

二.源代码管理

1.遵循Java语言的命名习惯,关于命名习惯,参见Sun文档,不过中文版http://www.blogjava.net/i369/articles/114305.html

2.生成的任何配置或则元数据不应该放在src目录中,而是应该放在target目录中,可以通过运行全量构建(clean build)时,它们可以被删除

三.测试管理

1.将所有要测试的源代码都放在test/[language]目录中,单元测试应该放在与包名相对应的目录中

四.构建输出管理

1.使用Maven做构建时.它把所有的东西都放在项目根目录中一个叫做target的文件夹中,包括生成的代码,元数据文件(如Hibernate映射文件),不可以把目录中的东西提交到版本控制库中

2.Maven在这个目录中如下创建文件:

/ [project-name]
/target
/classes Compiled classes
/test-classes Compiled test classes
/surefire-reports Test reports

如果你没有用Maven,可以在target目录下用一个名为reports的目录来保存测试报告,构建系统最终应该生成JAR,WAR和EAR这种形式的二进制包

五.库文件管理

1.完全交给工具管理,比如Maven,这时就不需要将库文件提交到版本控制系统中,只需要声明一下项目中所一来的库文件就好

2.库文件(包括构建,测试和运行时必需的所有库文件)都提交到版本控制库中,最常见的做法是将它们放在项目根目录下的lib文件夹中

3.我认为依赖库的不断演进,一种比较好的做法是建立组织的第三方依赖库,将所有项目需要的所有依赖库文件都放进去,Mavan可以自定义的

面向JVM的应用程序的项目结构的更多相关文章

  1. 一步步构建.NET Core Web应用程序---基本项目结构

    前言 随着.NET Core日益成熟, 我作为C#&.NET体系中的一份子也加入了.NET Core 这一体系中,随着不断学习, 接触到的各种框架日益庞杂,接下来我会由一个新手的角度把整个基于 ...

  2. 微信小程序学习二 微信小程序的项目结构

    进来之后可以看到五个文件和两个文件夹,一般新建的小程序项目都是这种格式,但有些可能会不一样,不用担心,因为我们所要关注的文件是不会变的 pages 小程序的页面放置文件夹,每一个页面(page)包含四 ...

  3. net core体系-web应用程序-3项目结构、配置文件详解

    一.应用程序文件结构 如下图所示,相比于Asp.Net项目,在新建的Asp.Net Core项目中,没有了Global.asax以及Web.config这样的文件,但多了几个其他主要的文件,它们分别为 ...

  4. .NET CLI简单教程和项目结构

    WHAT IS .NET CLI ? .NET 命令行接口 (CLI) 工具是用于开发.生成.运行和发布 .NET 应用程序的跨平台工具链. 来源:.NET CLI | Microsoft Docs ...

  5. MVC 5 第二章 项目结构

    通过本章学习,你将了解到一个MVC 5应用程序的项目组成以及项目文件的相关信息,从而更好地架构设计出自己的项目结构. 单从MVC的字面意思我们便能够注意到M-模型, View-视图, Controll ...

  6. 微信小程序开发01 --- 微信小程序项目结构介绍

    一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...

  7. Android应用程序项目结构

    Android应用程序项目结构 [src]:JAVA源代码目录 [gen]:由系统自动生成的JAVA源码文件,不可修改,只可查看和使用 加载的和依赖的类库 [assets]:本地存储文件的一个文件夹 ...

  8. Python封装应用程序的最佳项目结构是什么?

    Python封装应用程序的最佳项目结构是什么? 转载来源于stackoverflow:https://stackoverflow.com/questions/193161/what-is-the-be ...

  9. Android程序项目结构(二)

    利用Android Studio创建完第一个Hello World项目后,我们会看到使用project模式的项目结构. 一..gradle和.idea 这两个目录放置的是Android Studio自 ...

随机推荐

  1. C++对象构造时,构造函数运行时并不知道VT的存在

    class A {public: A() { init(); } virtual void init() { printf("A::init\n"); }}; class B : ...

  2. c++知识点总结3

    http://akaedu.github.io/book/ week1 引用:相当于变量的别名.下面r和n就相当于同一回事 ; int &r=n; 引用做函数参数: void swap(int ...

  3. JavaScript基础8——弹窗案例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. HBase HA分布式集群搭建

    HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...

  5. Python之列表、元组、字典、集合及字符串的详细使用

    1.列表 列表相当与C++中的数组,是有序的项目, 通过索引进行查找,但使用起来却方便很多,具体的操作看代码,自己实践一次就非常简单了. 注:列表一般用中括号“[ ]” #列表(数组) name_li ...

  6. 【记录】Git pull(拉取),push(上传)命令整理(详细)

    前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git ...

  7. 【LeetCode】数学(共106题)

    [2]Add Two Numbers (2018年12月23日,review) 链表的高精度加法. 题解:链表专题:https://www.cnblogs.com/zhangwanying/p/979 ...

  8. 37行代码构建无状态组件通信工具-让恼人的Vuex和Redux滚蛋吧!

    状态管理的现状 很多前端开发者认为,Vuex和Redux是用来解决组件间状态通信问题的,所以大部分人仅仅是用于达到状态共享的目的.但是通常Redux是用于解决工程性问题的,用于分离业务与视图,让结构更 ...

  9. count(*),count(1),count(列名)的区别

    count(*)和count(1)无任何差别,永远优于count其他字段只要存在普通索引,count就会使用普通索引,只存在主键时,count(*)和或count(1)会使用主键索引 count(a) ...

  10. MySQL数据库的自动备份与数据库被破坏后的恢复(2)

    测试自动备份正常运转与否(备份恢复的方法) 这里,以通过实际操作的过程来介绍问题出现后的恢复方法. [1] 当数据库被删除后的恢复方法 首先建立一个测试用的数据库. [root@CentOS ~]# ...