源代码的管理与在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 查看所有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进行代码测试的更多相关文章
- Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)
转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...
- Maven学习(一) -- 安装Maven及Eclipse中配置Maven
标签(空格分隔): 学习笔记 本文环境:Windows7, JDK1.7.0_76 安装及配置Maven环境变量 需要电脑中已经有Java环境 在控制台中输入:echo %JAVA_HOME%看是否能 ...
- 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)
http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...
- 在Eclipse中使用Maven插件 博客分类: Java相关技术
简介 本文介绍如何在Eclipse中通过maven插件编写java项目和web项目. 安装Maven 下载Maven最新版本,见:maven.apache.org/download.html 当前版本 ...
- Eclipse中使用Maven创建Servlet3.0 Web 项目
摘要 Apache Maven是一个优秀的项目构建和管理工具,许多开源项目都使用Maven进行构建.由于最近工作中要用到Maven,于是这里记录下在Eclipse中使用Maven插件创建一个基于Ser ...
- Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目
一.前言 如果还不了解剧情,请返回第3集的剧情 Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...
- 【MAVEN】如何在Eclipse中创建MAVEN项目
目录结构: contents structure [+] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库 ...
- Eclipse中使用Maven创建项目 (转)
转自:http://www.gogogogo.me/development/eclipse-maven-webapp.html Apache Maven是一个优秀的项目构建和管理工具,许多 ...
- 在eclipse中公布maven的多模块web项目到tomcat上及单步debug模块jar
1.在eclipse中公布maven的多模块web项目到tomcat eclipse和maven及tomcat的部署略去,还有maven的基础知识和使用在此处略去. 依照例如以下的步骤操作: 将lib ...
随机推荐
- nginx配置:location配置方法及实例
转载:https://blog.csdn.net/heiyueya/article/details/70149270 location匹配的是nginx的哪个变量? $request_uri loca ...
- splash渲染网页
#coding=utf8 import requests,time,random import threadpool render_html = 'http://192.168.30.128:8050 ...
- MS Chart Control 學習手記(二) - 圓餅圖
using System.Web.UI.DataVisualization.Charting; 02 using System.Drawing; 03 04 namespace Chart.AJA ...
- Linux服务器部署 Elasticsearch 成功,本机却访问不了
Elasticsearch版本: elasticsearch- 服务器版本: CentOS release 6.8 (Final) 问题: Linux服务器上部署了 Elasticsearch 5.5 ...
- UrlUtils工具类,Java URL工具类,Java URL链接工具类
UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...
- Unity使用OpenGL绘制线段
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ShowGrid ...
- Unity Shader 自定义纹理坐标变量写法
Properties { _R(,)) = 1.0 _ColorTex("ColorTex (RGB)", 2D) = "red" {} struct Inpu ...
- (转)作为一个新人,怎样学习嵌入式Linux?(韦东山)
被问过太多次,特写这篇文章来回答一下. 在学习嵌入式Linux之前,肯定要有C语言基础.汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会).C语言要学到什么程度呢?越熟当然越好,不熟的话也 ...
- 在input中既隐藏边框,也隐藏轮廓的设置
在设置input的时候,我们往往不想显示边框,所以通常会在css里面写"border"none",但是结果往往差强人意,如下图 我们这个时候可以加一个属性来把它的轮廓也隐 ...
- DataSet转化为实体类【转】
分别转化单个类和集合两种方法. /// <summary> /// DataSet转换为实体类 /// </summary> /// <typeparam name=&q ...