管理源代码的工具

开发历史记录

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    查看所有commit和reset的记录

提交过程

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

远程GIT库不是必须的

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

Maven

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

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

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

Maven 的安装

把maven安装包解压到某个位置

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

在path环境变量中添加;%M2_HOME%\bin

配置镜像

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

方法:

在=当前用户文件夹中找到.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被测试方法的名字

源代码的管理与在eclipse中使用maven进行代码测试的更多相关文章

  1. Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)

    转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...

  2. Maven学习(一) -- 安装Maven及Eclipse中配置Maven

    标签(空格分隔): 学习笔记 本文环境:Windows7, JDK1.7.0_76 安装及配置Maven环境变量 需要电脑中已经有Java环境 在控制台中输入:echo %JAVA_HOME%看是否能 ...

  3. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

    http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...

  4. 在Eclipse中使用Maven插件 博客分类: Java相关技术

    简介 本文介绍如何在Eclipse中通过maven插件编写java项目和web项目. 安装Maven 下载Maven最新版本,见:maven.apache.org/download.html 当前版本 ...

  5. Eclipse中使用Maven创建Servlet3.0 Web 项目

    摘要 Apache Maven是一个优秀的项目构建和管理工具,许多开源项目都使用Maven进行构建.由于最近工作中要用到Maven,于是这里记录下在Eclipse中使用Maven插件创建一个基于Ser ...

  6. Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一.前言 如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...

  7. 【MAVEN】如何在Eclipse中创建MAVEN项目

    目录结构: contents structure [+] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库 ...

  8. Eclipse中使用Maven创建项目 (转)

    转自:http://www.gogogogo.me/development/eclipse-maven-webapp.html       Apache Maven是一个优秀的项目构建和管理工具,许多 ...

  9. 在eclipse中公布maven的多模块web项目到tomcat上及单步debug模块jar

    1.在eclipse中公布maven的多模块web项目到tomcat eclipse和maven及tomcat的部署略去,还有maven的基础知识和使用在此处略去. 依照例如以下的步骤操作: 将lib ...

随机推荐

  1. nginx配置:location配置方法及实例

    转载:https://blog.csdn.net/heiyueya/article/details/70149270 location匹配的是nginx的哪个变量? $request_uri loca ...

  2. splash渲染网页

    #coding=utf8 import requests,time,random import threadpool render_html = 'http://192.168.30.128:8050 ...

  3. MS Chart Control 學習手記(二) - 圓餅圖

    using System.Web.UI.DataVisualization.Charting; 02 using System.Drawing; 03   04 namespace Chart.AJA ...

  4. Linux服务器部署 Elasticsearch 成功,本机却访问不了

    Elasticsearch版本: elasticsearch- 服务器版本: CentOS release 6.8 (Final) 问题: Linux服务器上部署了 Elasticsearch 5.5 ...

  5. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  6. Unity使用OpenGL绘制线段

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShowGrid ...

  7. Unity Shader 自定义纹理坐标变量写法

    Properties { _R(,)) = 1.0 _ColorTex("ColorTex (RGB)", 2D) = "red" {} struct Inpu ...

  8. (转)作为一个新人,怎样学习嵌入式Linux?(韦东山)

    被问过太多次,特写这篇文章来回答一下.   在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也 ...

  9. 在input中既隐藏边框,也隐藏轮廓的设置

    在设置input的时候,我们往往不想显示边框,所以通常会在css里面写"border"none",但是结果往往差强人意,如下图 我们这个时候可以加一个属性来把它的轮廓也隐 ...

  10. DataSet转化为实体类【转】

    分别转化单个类和集合两种方法. /// <summary> /// DataSet转换为实体类 /// </summary> /// <typeparam name=&q ...