tfs 可以java仓库管理系统代码 java代码吗

2975人阅读
ASP.NET WebForm开发(77)
&&&& 上周做项目的时候,我在网上搜了一下关于TFS的操作和权限管理,都是只教你怎么使用TFS进行可视化操作,而并没有发现关于操作TFS的相关代码,于是,我去微软的msdn里面查询了一番,发现可以通过命令行结合C#代码来对TFS进行操作.。关于Team Foundation Server 命令行工具请参考:&&&&&&/****************************创建tfs项目**********************************/&&& && /// &summary&&&&&&&& /// Produce powershell command to create tfs project&&&&&&& /// &/summary&&&&&&&& /// &param name=&projectName&&project name&/param&&&&&&&& /// &param name=&collectionUrl&&project collection http url&/param&&&&&&&& /// &returns&return command string&/returns&&&&&&&& public static string ProduceTfsCmd(string projectName,string collectionUrl)&&&&&&& {&&&&&&&&&&& StringBuilder sb = new StringBuilder();&&&&&&&&&&& //produce power shell command&&&&&&&&&&& sb.Append(&tfpt createteamproject /collection:#collectionUrl# /teamproject:#projectName# /processtemplate:\&MSF for Agile Software Development v5.0\& /sourceControl:new&);&&&&&&&&&&& //replace collectionurl for collection url parameter&&&&&&&&&&& sb.Replace(&#collectionUrl#&, collectionUrl);&&&&&&&&&&& //replace project name for project name parameter &&&&&&&&&&& sb.Replace(&#projectName#&, projectName);&&&&&&&&&&& return sb.ToString();&&&&&&& }&&&&&& &/// &summary&&&&&&&& /// 通过cmd命令进行执行创建项目命令,开启线程的作用&&&&&&& /// &/summary&&&&&&&& /// &param name=&projectName&&项目名称&/param&&&&&&&& /// &param name=&collectionUrl&&项目url&/param&&&&&&&& /// &returns&成功返回真,否则抛出异常&/returns&&&&&&&& public static string[] ExcuteCreateCmd(string projectName, string collectionUrl)&&&&&&& {&&&&&&&&&&&&&&& //创建并启动一个对进程 &&&&&&&&&&&&&&& Process p = new Process();&&&&&&&&&&&&&&& //Process类有一个StartInfo属性,这是ProcessStartInfo类,包括了一些属性和方法&&&&&&&&&&&&&&& string cmdStr = ProduceTfsCmd(projectName, collectionUrl);&&&&&&&&&&&&&&& p.StartInfo.FileName = &cmd.exe&;&&&&&&&&&&&&&&& //执行的命令及参数&&&&&&&&&&&&&&& p.StartInfo.Arguments = &/c & + cmdS&&&&&&&&&&&&&&& p.StartInfo.UseShellExecute = //关闭Shell的使用 &&&&&&&&&&&&&&& p.StartInfo.RedirectStandardInput =&&&&&&&&&&&&&&& p.StartInfo.RedirectStandardOutput =&&&&&&&&&&&&&&& p.StartInfo.RedirectStandardError =&&&&&&&&&&&&&&& p.StartInfo.CreateNoWindow =//设置不显示窗口 &&&&&&&&&&&&&&& p.Start(); //启动进程&&&&&&&&&&&&&&& string standardOutput = p.StandardOutput.ReadToEnd();&&&&&&&&&&&&&&& string ErrorOutput = p.StandardError.ReadToEnd();&&&&&&&&&&&&&&& string[] message = { standardOutput, ErrorOutput };&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&& }&&&&&&&& /// &summary&&&&&&&& /// 创建项目&&&&&&& /// &/summary&&&&&&&& /// &param name=&projectName&&项目名称&/param&&&&&&&& /// &param name=&collectionUrl&&项目URL&/param&&&&&&&& /// &returns&返回创建后的提示信息,string[0]存放标准输出,string[1]存放标准错误输出,前提是必须确保调用此方法是参数不为空&/returns&&&&&&&& [WebMethod(Description=&创建团队项目,输入参数:项目名称、项目地址;返回参数:&)] &&&&&&& public string[] CreateTeamProject(string projectName,string collectionUrl)&&&&&&& {&&&&&&&&&&&&& &&&&&&&&&&& string[] message = ExcuteCreateCmd(projectName, collectionUrl);&&&&&&&&&&&&&&&&&& }&&&&&&&/***************************删除tfs项目**********************************/&&&&&&& /// &summary&&&&&&&& ///&得到删除tfs项目的行命令&&&&&&&&&&&& /// &/summary&&&&&&&&&& /// &param name=&projectName&&项目名&/param&&&&&&&& /// &param name=&collectionUrl&&项目集地址&/param&&&&&&&& /// &returns&返回命令字符串&/returns&&&&&&&&&&& public static string ProduceDeleteCmd(string projectName, string collectionUrl)&&&&&&&& {&&&&&&&&&&& StringBuilder sb2 = new StringBuilder();&&&&&&&&&&& ////produce power shell command&&&&&&&&&&& sb2.Append(& /q /force /excludewss /collection:#collectionUrl #projectName&);&&&&&&&&&&& ////团队项目地址&&&&&&&&&&& sb2.Replace(&#collectionUrl&, collectionUrl);&&&&&&&&&&& ////团队项目名称&&&&&&&&&&& sb2.Replace(&#projectName&, projectName);&&&&&&&&&&& return sb2.ToString();&&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 通过cmd命令进行执行删除项目命令,开启线程的作用&&&&&&& /// &/summary&&&&&&&& /// &param name=&projectName&&项目名称&/param&&&&&&&& /// &param name=&collectionUrl&&项目url&/param&&&&&&&& /// &returns&成功返回真,否则抛出异常&/returns&&&&&&&& public static string[] ExcuteDeleteCmd(string projectName, string collectionUrl)&&&&&&& {&&&&&&&&&&&&&&& //创建并启动一个对进程 &&&&&&&&&&&&&&& Process p = new Process();&&&&&&&&&&&&&&& //Process类有一个StartInfo属性,这是ProcessStartInfo类,包括了一些属性和方法&&&&&&&&&&&&&&& string cmdStr = ProduceDeleteCmd(projectName, collectionUrl);&&&&&&&&&&&&&&& p.StartInfo.FileName = &C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\tfsdeleteproject.exe&;&&&&&&&&&&&&&&& ////执行的命令及参数&&&&&&&&&&&&&&& p.StartInfo.Arguments =&/c&+cmdS&&&&&&&&&&&&&&& p.StartInfo.UseShellExecute = //关闭Shell的使用 &&&&&&&&&&&&&&& p.StartInfo.RedirectStandardInput =&&&&&&&&&&&&&&& p.StartInfo.RedirectStandardOutput =&&&&&&&&&&&&&&& p.StartInfo.RedirectStandardError =&&&&&&&&&&&&&&& p.StartInfo.CreateNoWindow =//设置不显示窗口 &&&&&&&&&&&&&&& p.Start(); //启动进程&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& string standardOutput = p.StandardOutput.ReadToEnd();&&&&&&&&&&&&&&& string ErrorOutput = p.StandardError.ReadToEnd();&&&&&&&&&&&&&&& string[] message = { standardOutput, ErrorOutput };&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&& }&&&&&&& /// &summary&&&&&&&& /// 删除项目&&&&&&& /// &/summary&&&&&&&& /// &param name=&projectName&&项目名称&/param&&&&&&&& /// &param name=&collectionUrl&&项目URl&/param&&&&&&&& /// &returns&返回创建后的提示信息,string[0]存放标准输出,string[1]存放标准错误输出,前提是必须确保调用此方法是参数不为空&/returns&&&&&&&& [WebMethod(Description=&删除团队项目,输入参数:项目名称、项目地址;返回参数:&)]&&&&&&& public string[] DeleteTeamProject(string projectName, string collectionUrl)&&&&&&& {&&&&&&&&&&& string[] message = ExcuteDeleteCmd(projectName, collectionUrl);&&&&&&&&&&&&&&&&&& }&&&&&&/****************************关于TFS的一些其它操作,可以参照上述思路,这里不再做过多描述,明天我将继续发布关于tfs权限操作的一些代码************************/
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:646774次
积分:8374
积分:8374
排名:第1850名
原创:183篇
转载:25篇
评论:161条
(1)(4)(1)(3)(6)(10)(5)(4)(9)(2)(5)(5)(1)(2)(2)(5)(1)(18)(1)(5)(6)(1)(2)(1)(3)(2)(1)(1)(1)(4)(2)(1)(1)(1)(3)(6)(4)(3)(10)(11)(2)(3)(6)(1)(4)(4)(7)(23)(4)(5)&&&&TFS JavaAPI源码(附带JUinit测试用例)
TFS JavaAPI源码(附带JUinit测试用例)
在使用TFS时,淘宝所提供的javaAPI部分代码集成了tair的功能,如果不想使用tair可通过修改代码,将其功能注释掉,附件提供了注释之后的源码和TFS调用的单元测试用例
若举报审核通过,可奖励20下载分
被举报人:
javaman_chen
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
存储下载排行当前位置: →
→ Eclipse使用Teamexplorereverywhere进行代码管理
Eclipse使用Teamexplorereverywhere进行代码管理
& 作者及来源: 2012 - 博客园 &
&收藏到→_→:
摘要: Eclipse使用Team explorer everywhere进行代码管理
"Eclipse使用Teamexplorereverywhere进行代码管理"::
visual studio team explorer everywhere 2010主要包含两大组件,参考图:
●team explorer everywhere:它是eclipse的plug-in组件,让eclipse能够使用tfs的版本管控、工作项目(work item)、team build、以及报表等功能,它提供类似team explorer、pending changes等窗口,操作起来与原来的visual studio十分接近。
●cross-platform command-line:在unix-based系统,很多情况是没有x-window,意思是没有图形化用户界面(graphic user interface),唯一方法只能透过命令进行操作,这个工具让你透过指令进行程序代码版本管控与team build等工作。
图:tfs与team explorer everywhere整合架构。
下载地址 /download/en/details.aspx?displaylang=en&id=4240
其中tfseclipseplugin-updatesitearchive-10.0.0.zip 这个java写的eclipse插件
将插件安装到eclipse中,就可以在elcipse上使用tfs的功能了
如下是eclipse中使用一些截图
把项目加入tfs服务器
对于tfs的使用一般设置
对于项目的各种使用的功能菜单
直接修改文件或签出修改一样
和服务端的历史版本比较
本地修改的变化检测
忽略某些不需要保存到服务器上的文件
通过这个工具可以管理eclipse开发的各种项目,如java类的c++类的等。&&搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
Eclipse使用Teamexplorereverywhere进行代码管理_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜&dependency&
&groupId&com.taobao.tair&/groupId&
&artifactId&tair-client&/artifactId&
&version&2.3.1&/version&
&/dependency&
&dependency&
&groupId&mon.tair&/groupId&
&artifactId&common-tair&/artifactId&
&version&2.3.1&/version&
&/dependency&
&dependency&
&groupId&mon.tfs&/groupId&
&artifactId&tfs-javaclient&/artifactId&
&version&2.1.6&/version&
&/dependency&tfs.properties
tfs.client.maxWaitThread=100
tfs.client.timeout=2000
tfs.client.nsip=192.168.229.3:8108
tfs.client.tfsClusterIndex=1
tfs.client.maxCacheItemCount=10000
tfs.client.maxCacheTime=5000spring-tfs.xml
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE beans PUBLIC &-//SPRING//DTD BEAN//EN& &http://www.springframework.org/dtd/spring-beans.dtd&&
&bean id=&propertyConfigurer& class=&org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&&
&property name=&location&&
&value&classpath:tfs.properties&/value&
&/property&
&bean id=&tfsManager& class=&mon.tfs.DefaultTfsManager& init-method=&init& &
&!-- 整个进程中系统最多等待多少个请求,取决于你有多少个线程并发的请求TFS --&
&property name=&maxWaitThread& value=&${tfs.client.maxWaitThread}& /&
&!-- 单个请求最大的等待时间(ms) 超过这个时间放弃这次请求--&
&property name=&timeout& value=&${tfs.client.timeout}& /&
&!-- Tfs master nameserver ip address --&
&property name=&nsip& value=&${tfs.client.nsip}& /&
&!-- TFS 集群的编号,这个编号只是一种参考,系统初始化的时候会从ns上取,取不到才用本地设置的.!--&
&property name=&tfsClusterIndex& value=&${tfs.client.tfsClusterIndex}& /&
&!-- TFS在读取文件的时候会缓存block所在的数据服务器ip,这个参数配置了最多缓存的记录个数!--&
&property name=&maxCacheItemCount& value=&${tfs.client.maxCacheItemCount}& /&
&!-- 上一项缓存最大有效的时间(ms)!--&
&property name=&maxCacheTime& value=&${tfs.client.maxCacheTime}& /&
&!-- tair排重数据库的serverlist, 至少指定一个ip address --&
&property name=&uniqueServerList&&
&value&10.232.12.141:5198&/value&
&/property&
&!-- tair排重数据库的groupName --&
&property name=&groupName&&
&value&group_1&/value&
&/property&
&property name=&namespace&&
&value&100&/value&
&/property&
&bean id=&tfsClientService& class=&xxx.xxx.xxx.TfsClientService&&
&property name=&tfsManager& ref=&tfsManager& /&
&/beans&TfsClientService.java
public class TfsClientService {
* tfs 管理器
private DefaultTfsManager tfsM
* 保存一个文件到 tfs中,文件小于2M
* @param localFileName
本地文件名
* @param tfsSuffix
保存成功,返回成功后 的tfs文件名,失败返回null
String saveFile(String localFileName,
String tfsSuffix){
if(null == localFileName || null == tfsSuffix){
throw new IllegalArgumentException(&保存文件的入参不能为空!localFileName=& + localFileName
+ &,tfsSuffix=& + tfsSuffix);
tfsManager.saveFile(localFileName, null, tfsSuffix);
* 保存一个文件字节流到 tfs中,文件小于2M
* @param data
文件字节流
* @param tfsSuffix
保存成功,返回成功后 的tfs文件名,失败返回null
String saveFile(byte[] data,
String tfsSuffix){
if(null == data || null == tfsSuffix){
throw new IllegalArgumentException(&保存文件字节流入参不能为空!data=& + data
+ &,tfsSuffix=& + tfsSuffix);
return tfsManager.saveFile(data, null, tfsSuffix);
* 保存一个大文件到tfs(文件大于2M),成功返回tfs文件名(L开头),失败返回null
* tfs文件写大文件,为了断点续传,必须传入一个key参数,来标识此次大文件的写。一次写失败后,再次传入相同的key写,tfsclient会根据key找到前一次已经写完成的部分重用
* 默认使用localFileName作为key
* @param localFileName
本地文件名
* @param tfsFileName
保存到tfs中的文件名 (目前都为null,不支持自定义文件名)
* @param tfsSuffix
保存成功,返回成功后 的tfs文件名,失败返回null
String saveLargeFile(String localFileName,
String tfsSuffix){
if(null == localFileName || null == tfsSuffix){
throw new IllegalArgumentException(&保存大文件入参不能为空! localFileName=& + localFileName
+ &,tfsSuffix=& + tfsSuffix);
return tfsManager.saveLargeFile(localFileName, null, tfsSuffix);
* 保存一个字节流data到tfs(文件大于2M),成功返回tfs文件名,失败返回null,
* tfs文件写大文件,为了断点续传,必须传入一个key参数,来标识此次大文件的写。一次写失败后,再次传入相同的key写,tfsclient会根据key找到前一次已经写完成的部分重用
* @param data
* @param tfsSuffix
* @param key key name
String saveLargeFile(byte[] data, String tfsSuffix, String key){
if(null == data || null == tfsSuffix){
throw new IllegalArgumentException(&保存大文件字节流入参不能为空! data=& + data
+ &,tfsSuffix=& + tfsSuffix);
return tfsManager.saveLargeFile(data, null, tfsSuffix, key);
* 删除一个文件
* @param tfsFileName 文件名
* @param tfsSuffix
true if delete successully, or false if fail
boolean deleteFile(String tfsFileName, String tfsSuffix){
if(null == tfsFileName || null == tfsSuffix){
throw new IllegalArgumentException(&删除文件名或文件后缀不能为空! tfsFileName=& + tfsFileName
+ &,tfsSuffix=& + tfsSuffix);
return tfsManager.unlinkFile(tfsFileName, tfsSuffix);
* 从tfs 获取文件到本地
* @param tfsFileName
需要读取的tfs文件名
* @param tfsSuffix
需要读取的文件名后缀,需要和存入时后缀相同。
* @param localFileName 本地文件名
读操作成功返回true,读操作失败返回false
fetchFile(String tfsFileName, String tfsSuffix, String localFileName){
if(null == tfsFileName || null == tfsSuffix || null == localFileName ){
throw new IllegalArgumentException(&获取文件入参不能为空! tfsFileName=& + tfsFileName
+ &,tfsSuffix=& + tfsSuffix + &,localFileName=& + localFileName);
return tfsManager.fetchFile(tfsFileName, tfsSuffix, localFileName);
* 从tfs 获取文件到本地,数据存到输出流
* @param tfsFileName
* @param tfsSuffix
* @param output
读操作成功返回true,读操作失败返回false
boolean fetchFile(String tfsFileName, String tfsSuffix, OutputStream output){
if(null == tfsFileName || null == tfsSuffix || null == output ){
throw new IllegalArgumentException(&获取文件入参不能为空! tfsFileName=& + tfsFileName
+ &,tfsSuffix=& + tfsSuffix + &,output=& + output);
return tfsManager.fetchFile(tfsFileName, tfsSuffix, output);
* stat一个tfs文件
*文件的状态有0(正常), 1(删除), 4(隐藏)
* @param tfsFileName 需要读取的tfs文件名
* @param tfsSuffix 需要读取的文件名后缀,需要和存入时后缀相同
操作成功返回FileInfo,操作失败返回null
FileInfo statFile(String tfsFileName, String tfsSuffix){
if(null == tfsFileName || null == tfsSuffix ){
throw new IllegalArgumentException(&stat文件入参不能为空! tfsFileName=& + tfsFileName
+ &,tfsSuffix=& + tfsSuffix );
return tfsManager.statFile(tfsFileName, tfsSuffix);
public void setTfsManager(DefaultTfsManager tfsManager){
this.tfsManager = tfsM
public DefaultTfsManager getTfsManager(){
return this.tfsM
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8889次
排名:千里之外
原创:13篇
(6)(2)(2)(3)(5)}

我要回帖

更多关于 java管理系统源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信