`
sanshizi
  • 浏览: 85658 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

小工具, 提取Eclipse工程下需要上传的文件

阅读更多
搞了个小工具, 做了一堆修改后, 需要把修改的东西放到服务器上, 但是怎么把如此多文件都一个不漏的抽出来呢?
1. 在上传svn的时候, 复制需要上传的文件路径
2. 粘贴, 执行, 就这么简单
3. 结果保存工程文件夹下面, 默认是upload文件夹中

这里需要配置的地方
	var project_path="E:/develop/xxz/";
	var source="source/java_source/";
	var web_source="web_source/";
	var build="build/classes/";
	var dir='upload/';//打算复制到什么文件夹中
	var classes='WEB-INF/classes/'; //把class文件移到此文件夹中 upload/WEB-INF/classes/


完整代码
<html>
<head>
<title>从Css中复制图片资源</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>body{font-size:12px;}</style>
</head>
<body>
从CSS文件或是网页文件中提取出图片地址, 并生成CMD文本供应使用<br>
<textarea id="s" rows="3" cols="100"></textarea>
<textarea id="rs" rows="3" cols="100"></textarea>
<input type="button" value="生成CMD" id="go" />
<hr />
复制 上传文件 (通过svn中复制出来路径)[使用前请配置Eclipse工程路径, 只能在IE中使用]<br>
<textarea id="s_copysvngo" rows="5" cols="100"></textarea>
<input type="button" value="生成CMD(同目录)" id="copysvngo" />
<input type="button" value="一键搞定(绝对目录)" id="copysvngo2" />
<br><br>
<div id="msg"></div>
<script>
function msg(x,y){
	if(!y) $("#msg").html(x); else $("#msg").html($("#msg").html()+"<br>"+x);
}
$("#go").click(function(){
	msg("Start---------------------");
	var s=($("#s").val()+'');//.replace(/\)[^(]+?\(/g,'')
	var reg=/\.{0,2}(\/{0,1}[^\/]+?)+\.gif|jpg/g; 
	reg=/[^\/)("']*?(\/[^\/)("']+?)*\.gif|jpg/g;
	var d=(new Date()).getTime();
	var arr=s.match(reg);
	var dir='0000';
	var cmd='md '+dir+'\r\n';
	
	if(arr && arr.length>0){
		for(var i=0;i<arr.length;i++){
			cmd+='copy '+arr[i]+' '+dir+'/'+arr[i].replace(/.+\//g,'')+'\r\n';
		}
		cmd+='pause';
		$("#rs").val(cmd.replace(/\//g,'\\'));
	}else{
		msg("No data");
	}
	msg("Done---------------------",1);
	msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});

//复制 上传文件 通过svn中复制出来路径
$("#copysvngo").click(function(){
	msg("Start---------------------");
	var s=($("#s_copysvngo").val()+'');//.replace(/\)[^(]+?\(/g,'')
	var reg=/^(.+?\r|\n)$/g; 
	var d=(new Date()).getTime();
	var arr=s.replace(/\r|\n/g,'\r').replace(/\r+/g,'\r').split('\r');
	var dir='upload';
	var cmd='md '+dir+'\r\npause\r\n';
	msg("s.length="+s.length,1)
	if(arr && arr.length>0){
		var source="source/java_source/";
		var web_source="web_source/";
		var build="E:/develop/SZSC/build/classes/";
		var CHECK={};
		for(var i=0;i<arr.length;i++){
			arr[i]=$.trim(arr[i].replace(/\r|\n/g,''));
			if(arr[i].indexOf(".java")>source.length){
				arr[i]=arr[i].replace('.java','.class').replace(source,build);
			}
			arr[i]=(arr[i].indexOf("\\")==0 || arr[i].indexOf("/")==0)?arr[i].substring(1):arr[i];
			if(arr[i].length==0){msg("i="+i,1); continue;}
			var path=arr[i].replace(/\r|\n/g,'');
			var xname=arr[i].replace(/\r|\n/g,'').replace(/.+\//g,'');
			var xname2=!!CHECK[xname]?(path.replace(source,"").replace(build,"").replace(xname,"").replace(/\/|\\/g,".")+xname):xname;
			cmd+='copy '+path+' '+dir+'/'+xname2+' >> log.txt\r\n';
			CHECK[xname]="1";//用于重名检查
		}
		cmd+='pause';
		$("#s_copysvngo").val(cmd.replace(/\//g,'\\'));
	}else{
		msg("No data",1);
	}
	msg("Done---------------------",1);
	msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});


//复制 上传文件 通过svn中复制出来路径 , 针对eclipse IDE来说 [只能在IE中使用]
$("#copysvngo2").click(function(){
	
	//使用前,请此配置此处
	var project_path="E:/develop/xxz/";
	var source="source/java_source/";
	var web_source="web_source/";
	var build="build/classes/";
	var dir='upload/';//打算复制到什么文件夹中
	var classes='WEB-INF/classes/'; //把class文件移到此文件夹中 upload/WEB-INF/classes/
	
	msg("Start---------------------文件复制cmd命令生成器");
	var s=($("#s_copysvngo").val()+'');//.replace(/\)[^(]+?\(/g,'')
	var reg=/^(.+?\r|\n)$/g; 
	var d=(new Date()).getTime();
	var arr=s.replace(/\r|\n/g,'\r').replace(/\r+/g,'\r').split('\r');
	
	//io操作
	var IO={
		fso: new ActiveXObject("Scripting.FileSystemObject"),
		createFolder:function(path){
			path=path.replace(/\/$/,'');
			var arr=path.split('/');
			path="";
			for(var i=0;i<arr.length;i++){
				path+=arr[i]+'/';
				if(!arr[i] || arr[i].indexOf(':')>1) continue;
				if(!this.fso.FolderExists(path)) this.fso.CreateFolder(path);
			}
		},
		copyFile:function(source,target){
			this.fso.CopyFile(source,target);// overwrite old file
		},
		createFile:function(target, content){
			var a = this.fso.CreateTextFile(target, true);
			a.WriteLine(content);
			a.Close();
		}
	}
	
	msg("s.length="+s.length,1)
	
	//开始解析
	if(arr && arr.length>0){
		for(var i=0;i<arr.length;i++){
			arr[i]=$.trim(arr[i].replace(/\r|\n/g,''));
			arr[i]=(arr[i].indexOf("\\")==0 || arr[i].indexOf("/")==0)?arr[i].substring(1):arr[i];
			if(arr[i].length==0){msg("i="+i,1); continue;}
			var fullpath=arr[i].replace(/\r|\n/g,'');
			var newdir=fullpath.replace(source,classes).replace(web_source,'').replace(/\/[^\/]+?$/,'/');
			var sourcepath="";
			var targetpath="";
			//如果目录不存在, 则创建目录
			IO.createFolder(project_path+dir+newdir);
			//把类目录下的文件移到此上面定义的classes文件夹中: 默认是:WEB-INF/classes/
			if(arr[i].indexOf(source)>-1){
				sourcepath=arr[i].replace('.java','.class').replace(source,build);
				targetpath=dir+arr[i].replace('.java','.class').replace(source,classes);
			}
			//jsp,js, etc 文件
			if(arr[i].indexOf(web_source)>-1){
				sourcepath=fullpath;
				targetpath=dir+fullpath.replace(web_source,'');
			}
			IO.copyFile(project_path+sourcepath,project_path+targetpath);
		}
		
		//path文件
		IO.createFile(project_path+dir+"__path.txt",s.replace(new RegExp(source,'g'),classes).replace(new RegExp(web_source,'g'),''));
		
	}else{
		msg("No data",1);
	}
	msg("Done---------------------",1);
	msg("Time:"+(((new Date()).getTime()-d)/1000)+"s",1);
});


</script>
</body>
</html>
分享到:
评论

相关推荐

    符号表工具Android版-使用指南1

    - **定位Debug SO文件**:在Eclipse和Android Studio中,Debug SO文件通常位于工程的`obj`目录下。 - **匹配Crash**:通过比对Crash报告中的UUID来判断Debug SO文件是否与Crash相关。 - **查看UUID**:可以使用...

    对象存储Hitachi Content Platform (HCP)基本概念,S3接口示例工程,规则,最佳实践,异常处理

    - 使用Eclipse或其他IDE导入示例工程。 3. **示例工程说明:** - 示例工程包含了多种常用的操作,如对象的上传、下载、复制、分片上传、权限控制等。 - 这些示例提供了基础的代码实现,可以帮助开发者快速上手。...

    JSEclipse(带配置文档)

    这时,就需要引入插件来增强其功能,其中JSEclipse就是一款专为Eclipse设计的JavaScript编辑插件,它能显著提升JavaScript开发的体验。 **JSEclipse 插件功能** 1. **代码高亮**:JSEclipse提供了丰富的语法高亮...

    java 图片管理系统代码及设计.ppt

    Java 软件工程师需要熟悉 Java、Servlet、JSP、EJB 等开发技术,熟练使用 Eclipse 或 jbuilder 等 Java 开发工具,熟悉 JAVA+STRUTS 体系结构和开发工具,熟悉至少一种数据库的开发和设计。 5. 实现图片管理系统的...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java源码包---java 源码 大量 实例

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家...

    java源码包2

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    java源码包3

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    java源码包4

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    semanticcms-openfile-servlet-1.4.zip

    此外,你还可以查看源代码,特别是"src"目录下的Java文件,了解"openfile-servlet"的工作方式,它可能是一个处理文件上传、下载或管理的Servlet。 对于Java开发者来说,理解Servlet是重要的,因为Servlet是Java Web...

    ORiChiraiya:CIC鸟类鉴定项目

    2. 图像处理:鸟类鉴定通常需要依赖视觉特征,因此项目可能集成了图像处理技术,比如图像识别和特征提取,帮助用户通过上传照片来识别鸟类。 3. 用户界面:为了方便用户使用,项目会有一个用户友好的图形用户界面...

Global site tag (gtag.js) - Google Analytics