源代码的管理与在eclipse中使用maven进行代码测试

管理源代码的工具

开发历史记录

SVN :集中式的源代码管理工具 通常必须连到公司的服务器上才能正常工作

(提交代码,查看代码的历史记录 查看代码的分支)

在公司中开发项目时 每天必须至少提交(Commit)一次代码。

第二天上班时 写代码之前 先获取最新(update)的源代码

如果出差到外地  则无法直接从公司内部的SVN服务器上获取代码,提交等

(此时VPN可能是一个解决方案)

总之必须连到SVN服务器上才能干活

GIT: 分布式的源代码管理工具,没有中心服务器的概念。

每个开发人员都可以获得完整的代码库。即使不连网 也能进行所有的操作

使用GIT 因为代码库在本地 所以可以很快的提交  不会受网速影响

提交的频率就可以大大的提高。代码的历史记录更加详细(当需要查看或恢复 到某一状态时 会更加准确灵活)

团队合作开发

源代码管理工具=》都能解决团队合作开发的问题

GIT/SVN都是网络程序 都是多用户的系统!

版本管理

在开发过程中 会同时并存在一个产品的多个”版本”

(下一代产品)开发版(分支)

新特性实验版(分支)

Bug修复版(分支)

正式发布版(分支)

 

不同的版本有自己的历史记录 有自己的研发团队(多人合作)

开源项目

使用GIT可以管理或参与开源项目  GIT本身就是为开源项目设计的

在互联网上有很多云代码管理库(云计算和源代码和管理的结合)

趋势:源代码管理将成为一种公共服务

国内:OSChina 码云(目前私有项目暂不收费 但是项目大小不能超过1G

国际:Githob (对于私有项目收费)

软件开发能力

通过cmmi级别可以判断 一个公司的软件开发能力

CMMI 能力成熟度模型 一共定义了五个级别

级别越高 表明软件开发能力越强 越成熟

5级很难达到

3级以上意味着公司的管理非常规范

质量标准 ISO 2000   国际标准   规定了软件质量的形成和保证机制

无论是CMMI还是ISO 对于源代码管理 都有明确要求-----软件公司必须使用专业的工具管理代码资产

GIT命令

git init  初始化一个git仓库 会在当前文件夹中生成一个隐藏文件夹中

在这个隐藏文件夹中保存的是版本库的所有数据

git add 文件名/.  将已修改的文件放入暂存区

git commit -m 消息    将暂存区的文件提交到代码库

git log    查看提交记录 -- oneline (查看简化的记录(显示在一行)

git status  查看工作区的状态

(那些文件被修改/那些文件删除/那些文件没有进版本库)

git reset --hard 提交id的前几个字母

可以跳转到某一历史记录

所有的文件都会恢复到那时的状态

git reflog    查看所有commitreset的记录   

提交过程

工作区---add--->暂存区---commit---->分支(某个)---push--->远程git

远程GIT库不是必须的

暂存区存在的目的是可以挑选一部分文件提交 而不是将整个文件全部提交

Maven

项目开发管理工具 它能够帮助开发者创建项目,

解决项目依赖关系,测试项目,打包项目,安装部署项目

能够帮助开发者更加轻松的完成整个项目的开发过程

Maven 的安装

maven安装包解压到某个位置

配置M2_HOME环境变量指向这个位置

path环境变量中添加;%M2_HOME%in

配置镜像

 国内的阿里云镜像比国外的中央仓库更快

方法:

=当前用户文件夹中找到.m2 settings.xml 放进去

如果没有.m2 可以在命令行中运行 mvn

如果没有settings.xml   从百度上搜maven镜像

eclipse 结合

最新版本的eclipse 自带maven 插件 但版本比较低 也没有配置镜像

所以在window--->preference------>maven------>installation 中添加并选择我们自己安装和配置好的maven

使用maven 创建项目

New---->maven----->选中create simple ---->填写项目信息

Group  id 组织、公司项目组中的名字

Artfact id   项目名字

版本号  snapshot 快照版 用来快速编写代码验证某个功能或需求

初次创建maven项目时 需要从中央仓库 下载jar包 和maven需要文件 等待下载完成即可

Pom 文件

每一个maven项目都有一个pom.xml文件  用来记录项目的基本信息

项目名称  描述  版本   maven坐标

项目依赖关系

项目使用的插件等

Maven项目的基本结构

src 源代码

main 项目主体代码

java Java代码

resource 项目使用资源 配置文件等

test 测试代码

java Java测试代码

resource 测试代码使用的资源和配置文件

target 编译之后生成文件

pom.xml 项目描述文件

Pom:project object model     项目对象模型

把一个项目当做一个对象

此时就需要这个对象定义很多属性

()

Maven依赖/坐标

Group id

Artfact id

 Version

上面三个非常重要  尤其是版本号一定要注意 不同的版本api 可能不同 如果版本号错误则会找不带类 找不到方法等错误

Scope     作用域/指明这个依赖项的作用地址

Test    仅在测试时使用

Compile    参与到项目的编译、打包、部署等过程

Runtime     jdk 或运行环境提供 不许打包  

部署时需自行安装jdk或其他执行环境

Provided      已经提供的依赖项 不需打包

System       已经有系统提供

Maven通过查看pom.xml文件的<dependencies>

可以找到某个项目或者jar包的依赖项

找到之后可以通过中央仓库将至下载到本地仓库

然后会在新下载的pom文件  

再去找其中的<dependencies> 找到之后继续下载

直到找到所有的依赖项全部下载到本地仓库中

Maven本地仓库

Maven回将jar包统一放在本地仓库中 在.m2 文件夹的repository

按照goupid/artfectid/version/的方式保存这些jar

本地仓库的作用是 每个jar包只需下载一次既可以被任意多的项目使用

避免重复下载

避免重复占用磁盘空间

有免除了程序员从官方网站查找和下载jar包的痛苦

JUnit

Java Unit Test  用于Java单元测试工具

单元测试是由程序员编写的用于测试自己的代码

使用单元测试的好处是

测试代码与项目主体代码是分离的

不用考虑删除的问题

可以反复多次使用   即便是项目上线之后依然可以用于后期的bug修复时使用

测试代码的反复使用可以节省大量时间   

避免反复编写代码检查程序功能是否正常

单元测试是开发的一部分   是程序员的工作内容 而非测试人员的工作内容

测试驱动开发

与传统的先编码后测试不同  它的思想是先写测试用例 然后在编写代码

编写代码时 通过不断地运行测试 测试用例来推动编写 直到

创建测试类

测试类的包名应该等于被测试的包名   即在同一个包中

测试类的名字=被测试类的名字 Test

测试方法必须是public

测试方法的名字=test被测试方法的名字

 

原文地址:https://www.cnblogs.com/yangxiansen/p/7860273.html