java写的根据svn信息生成的增量打包

java写的根据svn信息生成的增量打包
java写的根据svn信息生成的增量打包

package util;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileFilter;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.IOException;

/**

* 使用说明:

* 注意:在使用之前需保证本地和SVN上的数据保持一致。

*

* 使用方法:

* 1. 查看SVN日志,将日志复制到一个文本文件war.txt 中

* 2. 配置参数,需对以下几个参数进行配置:(对于目录路径可以不用斜杠结尾)

* destPath: 生成的打包文件夹。

* workPath: 服务器下部署目录。

* 3. 需要修改的地方:

* 路径地址destPath txtPath workPath

* 所有的路径判断条件,下方有标注

*

*/

public class SvnBag {

public static String destPath = "E:\\project"; // 放生成的WAR路径

public static String txtPath = "E:\\war.txt"; // 将SVN信息复制到该文本文件中

public static String workPath = "E:\\work6.0\\project\\WebRoot"; // 注意此目录需配置为服务器目录,eclipse 工作目录可能不存在JSP文件

public static void main(String[] args)

{

// setResourceAttributeValue();

if (workPath == null || "".equals(workPath))

{

return;

}

if (!new File(workPath).exists())

{

return;

}

StringBuffer errinfo = new StringBuffer();

BufferedReader reader = null;

try

{

reader = new BufferedReader(new FileReader(txtPath));

String string = null;

while ((string = reader.readLine()) != null)

{

if (string.contains("/src/")) //"/src/"可修改为对应的判断条件,下方同此

{

String filename = string.substring(https://www.360docs.net/doc/961578907.html,stIndexOf('/') + 1);

//此判断用于判断java文件

if (filename.endsWith(".java")) // 编译之后生成class文件,且要考虑内部类的情况

{

final String temp = filename.substring(0, filename.indexOf(".java")); // 去掉扩展名之后的文件名

//下方代码的+ 14 可修改为自己对应截取的部分

String classDir = workPath + "/WEB-INF/classes" + string.substring(string.indexOf("/src/") + 14, https://www.360docs.net/doc/961578907.html,stIndexOf('/'));

final String destDir = destPath + "/WEB-INF/classes" + string.substring(string.indexOf("/src/") + 14, https://www.360docs.net/doc/961578907.html,stIndexOf('/'));

File[] files = new File(classDir).listFiles(new FileFilter() {

public boolean accept(File file)

{

if (file.getName().equals(temp + ".class") || file.getName().startsWith(temp + "$"))

{

String dest = destDir + "/" + file.getName();

SvnBag.copyFile(file, new File(dest));

return true;

}

return false;

}});

if (files.length == 0)

{

errinfo.append("SVN信息:" + string + "\n在路径" + classDir + " 下找不到编译之后的文件,源文件名:" + filename + "\n");

System.out.println(errinfo.toString());

}

}

else // 对于其他类型文件(一般为配置文件)。下方代码的+ 14 可修改为自己对应截取的部分

{

String sourceFile = workPath + "/WEB-INF/classes" +

string.substring(string.indexOf("/src/") + 19);

String destFile = destPath + "/WEB-INF/classes" + string.substring(string.indexOf("/src/") + 19);

SvnBag.copyFile(new File(sourceFile), new File(destFile));

}

} else if (string.contains("/WebRoot/")){ //"/WebRoot/"可修改为对应的判断条件,下方同此。此判断用于判断修改过的jsp前台页面。

//下方代码的+ 8 可修改为自己对应截取的部分

String sourceFile = workPath + string.substring(string.indexOf("/WebRoot/") + 8);

String destFile = destPath + string.substring(string.indexOf("/WebRoot/") + 8);

SvnBag.copyFile(new File(sourceFile), new File(destFile));

} else if (string.trim().length() > 0) {

errinfo.append("\nSVN信息:" + string + "\n该SVN信息不能被解析!\n");

System.out.println(errinfo.toString());

}

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try

{

if (reader != null)

reader.close();

}catch (IOException e) {

System.out.println(e.getMessage());

}

}

}

/**

* 拷贝文件

* @param source 原文件

* @param dest 目标文件

*/

public static void copyFile(File source, File dest)

{

FileInputStream inputStream = null;

FileOutputStream outputStream = null;

try

{

if (!dest.exists())

{

dest.getParentFile().mkdirs();

}

inputStream = new FileInputStream(source);

outputStream = new FileOutputStream(dest);

byte[] bs = new byte[8192];

int size = 0;

while ((size = inputStream.read(bs)) != -1)

{

outputStream.write(bs, 0, size);

}

outputStream.flush();

} catch (Exception e){

e.printStackTrace();

} finally {

try

{

if (outputStream != null)

outputStream.close();

if (inputStream != null)

inputStream.close();

} catch (IOException e){

System.out.println(e.getMessage());

}

}

}

/*

* 读取存放destPath和workPath路径的文件,如果已定义路径,则不需要此方法*/

public static void setResourceAttributeValue()

{

BufferedReader reader = null;

String string = "";

try

{

//res.txt文件用于存放destPath和workPath路径。格式如下:

//destPath= E:\\project

//workPath = E:\\work6.0\\project\\WebRoot

reader = new BufferedReader(new FileReader("E:\\res.txt"));

while ((string = reader.readLine()) != null) {

String key = string.substring(0, string.indexOf('='));

String value = string.substring(string.indexOf('=') + 1).trim();

if (key.equals("destPath"))

{

SvnBag.destPath = value;

}

if (key.equals("workPath"))

{

SvnBag.workPath = value;

}

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try

{

if (reader != null)

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

SVN服务器配置说明

1、前言 花了72小时,终于把 Subversion 初步掌握了。从一个连“什么是版本控制”都不知道的门外汉,到配置出精确至每目录访问的入门者,中间还卡了一天时间。其中费了许多气力,摸索实验了多次,还差点放弃了,但是收获是巨大的。现把我的配置和学习过程写下来,供大家参考,也让初学者少走弯路。 以下仅以 Windows 平台为例讲解,Unix/Linux 平台请参考相关资料。如其中有谬误的地方,包括错别字,请联系我修订。 技术在分享中进步! 2、基本概念 2.1、什么是版本控制 简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。 2.2、什么是 Subversion Subversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。 Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。

一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码,对别人,可能是一个货物报价单或者是书稿等。 2.3、版本库(repository) Subversion 的核心就是 repository ,中文翻译成“版本库”。就是位于服务器端,统一管理和储存数据的地方。 3、安装配置 3.1 安装独立服务器 SVNServer 环境 OS:Windows XP SP2 Web:Apache 2.2.6 SVN:svn-win32-1.4.6 一、准备工作 1、获取 Subversion 服务器程序 到官方网站(https://www.360docs.net/doc/961578907.html,/)下载最新的服务器安装程序。目前最新的是1.4.6版本,具体下载地址在: https://www.360docs.net/doc/961578907.html,/servlets/ProjectDocumentList?folderID=81 00&expandFolder=8100&folderID=91,注意找 for apache 2.2.x 版本的。 2、获取 TortoiseSVN 客户端程序

常用包 Java 功能介绍

Java的常用包简介 JVM的常用包一般在C:\Program Files\Java\jre1.5.0_04\lib\rt.jar 一般都会放在C:\Program Files\Java\jre1.5.0_04\lib下 jdk的一般在C:\Program Files\Java\jdk1.5.0_04\jre\lib 源代码在C:\Program Files\Java\jdk1.5.0_04\src.zip java调用的包像String啊这些自带的包的源代码都可以在这里找到。 一般碰到不会用的类都是直接去看API文档的。 1、https://www.360docs.net/doc/961578907.html,ng包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。 2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等。 3、java.util包:Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable 类。 4、java.util.zip包:实现文件压缩功能。 5、https://www.360docs.net/doc/961578907.html,ng.reflect包:提供用于反射对象的工具。 6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库。 7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。 8、java.applet包:用于执行小程序的类,如Applet类。 9、https://www.360docs.net/doc/961578907.html,包:实现网络功能的类库有Socket类、ServerSocket类。 10、java.corba包和java.corba.orb包。

java面向对象—封装详解

Java面向对象 面向对象 在Java中,高手们的概念就是万物皆对象。 面向对象的概念: 面向对象:是基于面向过程的一种思想。 面向过程:强调的是功能行为。 面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。 面向对象和面向过程: 图例:

面向对象特点: 1,面向对象就是一种常见的思想。符合人们的思考习惯。 2,面向对象的出现,将复杂的问题简单化。 3,面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。面试题:你怎么理解面向对象的? 1,它符合现在人们思考的一种习惯 2,它让我们复杂的事情简单化 3,让我们从曾经的执行都变为现在的指挥者 其实面试官你本身就在用面向对象的方式思考问题

因为以面试官您的能力而言,来了一个软件项目的话,您从需求分析到设计到开发到测试,都能完成,但是这样特别耗时间,所以您为了提高效率,您就需要 去找一些具备专业编程经验的人来完成这些项目,我正好就是那个具备专业编程经验的对象,您只要指挥我这个对象做事情就可以了,我会给您一个非常满意的 结果,至于过程您不用管。所以面试官您就在用面向对象的方式思考问题,来提高公司的效率,而我就是具备专业编程经验的人。 面向对象有三个特征:封装,继承,多态 以后的开发过程:其实就是找对象用。没有对象,就创建一个对象。 找对象,建立对象,使用对象,并维护对象的关系。 类和对象的关系: 类:就是对现实生活中事物的描述。 对象:就是这类事物,实实在在存在的个体。 想要描述:提取对象中共性内容。对具体的抽象。 映射到Java中描述就是class定义的类。 具体对象就是对应Java在堆内存中用new建立实体。 例子: 需求:描述小汽车。描述事物其实就是在描述事情的属性和行为。 分析: 1,属性:轮胎数。颜色。 2,行为:运行。 定义类其实就是在定义类中的成员。 成员:成员变量<-->属性,成员函数<-->行为。 属性对应是类中变量,行为对应的类中函数或方法。 其实定义类,就是在描述事物,就是在定义属性和方法,属性和行为共同成为类中的成员(成员变量和成员方法)。

Java程序员必须了解的20个lib库

Java程序员必须了解的20个lib库 一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧。 1,日志库 日志库是最常用的,毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息,从而很快的定位项目的发生的问题。尽管JDK附带了自己的日志库,但是还有更好的选择,例如Log4j、SLF4j和LogBack。一般建议使用SLF4j。比如Alibaba开发手册上也是这样说的,毕竟SLF4J使您的代码独立于任何特定的日志API,就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成。 2,JSON转换库 在当今的web服务、手机api接口开发和物联网世界中,JSON已经成为将信息从客户端传送到服务器的首选协议。它们前端要学好必须每天坚持学习。为了方便大家的交流学习,也是创建了一个群每天都有分享学习方法和专业老师直播

前端课程,这个扣裙首先是132 中间是667 最后是127 前端学习零基础想要学习的同学欢迎加入,如果只是凑热闹就不要来了!!!已经取代了XML,成为以独立于平台的方式传输信息的首选方式。不幸的是,JDK没有JSON库。但是,有许多优秀的第三方库允许您解析和创建JSON消息,比如Jackson和Gson,FastJson。 3,单元测试库库 单元测试是区分普通开发人员和优秀开发人员的最重要的东西。程序员经常被给予不写单元测试的借口,但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识,包括JUnit、Mockito和PowerMock。 4,通用类库 Java开发人员可以使用一些优秀的通用第三方库,比如Apache Commons和谷歌Guava。我总是在我的项目中包含这些库,因为它们简化了许多任务。正如约书亚?布洛赫(Joshua Bloch)在《Effective Java》一书中正确指出的那样,重新发明轮子是没有意义的。我们应该使用经过测试的库,而不是时不时地编写我们自己的程序。对于开发人员来说,熟悉Apache Commons和谷歌Guava 是很有用的。 5,HTTP库

SVN服务端安装和配置

所有资料来源于 https://www.360docs.net/doc/961578907.html, 我用Subversion - SVN|TortoiseSVN下载安装配置使用技术交流社区 SVN 服务端安装和配置 1.Windows环境下基于 Apache 的SVN 服务器安装及配置 1.1安装 1.1.1安装Apache (1)下载Apache 地址https://www.360docs.net/doc/961578907.html,/download.cgi 注意:Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.3。当前建议下载Apache 2.0.59 (2) 安装 下载完成后运行apache_2.0.59-win32-x86-no_ssl.msi,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址。 注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录\Apache Group\Apache2\conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 81,然后重新启动-这样就不会那个问题了。 (3)检查 安装完成后浏览http://localhost/若成功,可看到apache页面。 1.1.2安装Subversion (1)下载 Subversion 地址:https://www.360docs.net/doc/961578907.html,/servlets/ProjectDocumentList?folderID=91(2)安装 运行svn-1.4.3-setup.exe 安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。 (3)后续 步骤1 从C:\Program Files\Subversion\bin 中将 mod_authz_svn.so mod_dav_svn.so复制到 C:\Program Files\Apache Group\Apache2\modules下 intl3_svn.dll libdb*.dll C:\Program Files\Apache Group\Apache2\bin下 步骤2 找到C:\Program Files\Apache Group\Apache2\conf\httpd.conf文件去掉如下几行的注释(删除 '#'标记):

java开发常用的jar包的作用解释

java开发常用的jar包的作用解释 转载自: https://www.360docs.net/doc/961578907.html,/chaod5659/article/details/8250845 java开发中主要用到的jar包描述commons-io.jar: 可以看成是java.io的扩展,用来帮助进行IO功能开发.它包含三个主要的领域:Utilityclasses-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与writer实现. commons-beanutils.jar: 提供对Java反射和自省API的包装,主要提供了对于JavaBean进行各种操作。 commons-digester.jar: 它能方便地将XML文档所定义的元素转化为JAVA对象,其实它的用法有点象栈(当然内在的原理就是那个古老的东

西,只是提供了更高一层的封装)。 commons-lang.jar: 它扩展了标准https://www.360docs.net/doc/961578907.html,ngAPI,增加了字符串操作方法、基本数值方法、对象反射、创建和串行化以及System属性。它还包含一个可继承的enum类型、对多种嵌套的Exception 类型的支持、对java.util.Date的增强以及用于构建方法的实用程序,例如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。 ArrayUtils–用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField–用于操作位元,提供了一些方便而安全的方法; BooleanUtils–用于操作和转换boolean或者Boolean及相应的数组;

svn服务器端配置库创建及配置方法

SVN服务器端配置库创建(Express版) 1创建SVN配置库目录 在某一路径下,点击鼠标右键-新建-文件夹,创建一个文件夹,并修改目录名(如MySVN,在本文档中称之为SVN配置库)。右键点击该目录,选择TortoiseSVN-Create repository here。(备注:“repository”是英文“储藏室”的意思) 1-1Create repository创建SVN配置库 2对SVN配置文件进行配置 SVN配置库目录建立后,需要对配置文件进行配置。进入配置库目录下的conf目录,其中有authz、passwd、svnserve三个文件,anthz配置用户权限、passwd配置用户名与密码、svnserve即为配置文件的配置文件。在这三种文件中“#”为注释行起始符号。另外需要注意的是,配置语句的每一行不能有多余的空格。 2.1svnserve文件的配置 将整个文件中的内容替换为以下内容即可。

[general] anon-access = read auth-access = write password-db = passwd //定义passwd文件为用户名-密码数据库 authz-db = authz //定义authz文件为权限管理数据库 2.2passwd文件配置 passwd文件主要用于设置用户名与密码,其语法格式为“用户名 = 密码”。如添加用户名为user,密码为pwd的用户,则可以使用如下方法实现: [users] user = pwd //定义用户user,其密码为pwd 2.3authz文件配置 authz文件主要用于设置用户所属群组,配置用户权限及群组权限。群组信息在[groups] 标签下配置;某个目录的读写权限则在[某路径]标签下配置,r表示可读权限,w 表示可写权限,rw表示可读可写权限。假设passwd文件中定义了A、B、C、D四个用户,下面将进行一些配置并对这些配置的含义进行说明。 [groups] groupA = A,B //定义群组groupA,它具有两个用户A、B groupB = C,D //定义群组groupB,它具有两个用户C、D [/] * = r //在根目录所有用户有只读权限

Eclipse中将Java项目 打包为jar,并且引入第三方jar包 解决办法

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如: Manifest-Version: 1.0 Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.j ar lib\mysql-connector-java-3.1.13-bin.jar Main-Class: src.YourMainClassName 其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为pr oject.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib 文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" https://www.360docs.net/doc/961578907.html,ng.NoClassDefFoundError的错误。 注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java. io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可 最后介绍一下使用Eclipse制作jar包的过程吧: 1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”; 2. 选择Java/JAR file,Next; 3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间; 这里有几个选项: * Export generated class files and resources 表示只导出生成的.clas s文件和其他资源文件 * Export all output folders for checked projects 表示导出选中项目 的所有文件夹 * Export java source file and resouces 表示导出的jar包中将包含你 的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 * Export refactorings for checked projects 把一些重构的信息文件也 包含进去 在Select the export destination中选择导出的jar的路径,Next 4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next 5. 下一个页面里可以对项目做一些配置。 * Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,

java开发常用jar包

java开发常用jar包 mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/961578907.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含日志功能 commons-io.jar Apache Commons包中的一个,java.io.*的扩展,输入输出,支持文件上传 commons-fileupload.jar Apache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库 dom4j-1.4.jar 和jaxen-1.1.1.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar

Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 hibernate3.jar hibernate3的核心类库。 itext.jar 是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里用于中文字体的输入。 junit.jar Junit包,当你运行Hibernate自带的测试代码的时候需要,否则就不用。 commons-digester.jar Apache Commons包中的一个,通过它可以很方便的解析xml文件生成java对象aspectjrt.jar 和aspectjweaver.jar Annotation 方式实现AOP commons-dbcp.jar commons-pool-1.2.jar DBCP数据库连接池 cglib-nodep-2.1_3.jar CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类 jfreechart-1.0.12.jar

服务器VisualSVN-Server_2.1.6安装、配置方法

1.安装服务器版(VisualSVN-Server-2.1.6.msi),下图为本机系统及部分信息,本机做了RAID0+1(装了四块硬盘,其中两块为备份盘,目的是正常用的两块硬盘使用过程中如果突然坏掉,另两块硬盘将保存坏硬盘的数据,同时顶替掉坏硬盘进行工作)。 2.双击打开VisualSVN-Server-2.1.6.msi, 点next 后如下图 在下面选项打勾,点next,出现下图

选择中如如选项,点next 后出现下图 上图中,Location:项为程序安装目录,Repositories:后面为项目的保存目录(以后项目就保存在这个目录下了),点后面的Browse…可以修改位置,然后点netxt,,出现下图 点击install,程序开始安装,安装过程中如果出现提示,可能是电脑名称为中文,最好提前改为英文。安装正常情况下出现下图:

点Finish,即完成安装,VisualSVN会运行。出现下图 VisualSVN Server的配置和使用方法(转) 1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server 为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion 和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。 2.为什么不用TFS? 回答:

java封装对象

package cn.itcast.introspector; import java.io.BufferedReader; /* 需求:编写一个工厂方法根据配置文件的内容,工厂方法返回对应的对象,并且把对象要有对应的属性值。 */ import java.io.FileReader; import https://www.360docs.net/doc/961578907.html,ng.reflect.Constructor; import https://www.360docs.net/doc/961578907.html,ng.reflect.Field; /* 以后我们开发框架的时候,我们是经常需要把一些数据封装到对象中的。 */ public class Demo1 { public static void main(String[] args) throws Exception { Person p = (Person) getInstance(); System.out.println(p); } //根据配置文件的内容生产对象的对象并且要把对象的属性值封装到对象中。

public static Object getInstance() throws Exception{ BufferedReader bufferedReader = new BufferedReader(new FileReader("obj.txt")); String className = bufferedReader.readLine(); //读取配置文件获取到完整的类名。 Class clazz = Class.forName(className); //通过class对象获取到无参的构造方法 Constructor constructor = clazz.getConstructor(null); //创建对象 Object o = constructor.newInstance(null); //读取属性值 String line = null; while((line = bufferedReader.readLine())!=null){ String[] datas = line.split("="); //通过属性名获取到对应的Field对象。 Field field = clazz.getDeclaredField(datas[0]); if(field.getType()==int.class){ field.set(o, Integer.parseInt(datas[1])); }else{ field.set(o, datas[1]); } } return o; } }

java常用jar包

java常用jar包(未整理) 2011-05-11 14:58:50 分类:Java Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。 下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包: hibernate2.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也 是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在 那个方面都是非常出色的。我早在将近两年之前就开始使用dom4j,直到现在。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在 用dom4j。这是必须使用的jar包,Hibernate用它来读写配置文件。 odmg.jar: ODMG是一个ORM的规范,Hibernate实现了ODMG规范,这是一个核心的库,必须使用的jar包。 commons-collections.jar:Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。 commons-beanutils.jar:Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-lang.jar: Apache Commons包中的一个,包含了一些数据类型工具类,是https://www.360docs.net/doc/961578907.html,ng.*的扩展。必须使用的jar包。 commons-logging.jar: Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含

svn服务器端配置库创建及配置办法

S V N服务器端配置库创建(E x p r e s s版)1创建SVN配置库目录 在某一路径下,点击鼠标右键-新建-文件夹,创建一个文件夹,并修改目录名(如MySVN,在本文档中称之为SVN配置库)。右键点击该目录,选择TortoiseSVN-Create repository here。(备注:“repository”是英文“储藏室”的意思) 1-1Create repository创建SVN配置库 2对 SVN authz、passwd即为配置 每一2.1 2.2 passwd user,密码为pwd的用户,则可以使用如下方法实现: [users] user = pwd //定义用户user,其密码为pwd 2.3authz文件配置 authz文件主要用于设置用户所属群组,配置用户权限及群组权限。群组信息在[groups] 标签下配置;某个目录的读写权限则在[某路径]标签下配置,r表示可读权限,w表示可写权限,rw表示可读可写权限。假设passwd文件中定义了A、B、C、D四个用户,下面将进行一些配置并对这些配置的含义进行说明。

[groups] groupA = A,B //定义群组groupA,它具有两个用户A、B groupB = C,D //定义群组groupB,它具有两个用户C、D [/] * = r //在根目录所有用户有只读权限 A = rw //在根目录用户A具有读写权限 @groupB = rw //在根目录群组groupB具有读写权限 [/目录A] C = w 3 一个SVN配置库 1) 2)目录下存 3) SVN 过程中对SVN配置进行过修改(如添加一个新用户),则需要重启该SVN服务,即点击停止再点击开始。 3-1mySwapper配置界面 4进行Check-out 下面在客户端建立一个文件夹,进行SVN Checkout后,即可进行文件的上传、下载了。相信下面的工作大家都很熟悉拉。 4-1进行Check-out

Java程序打成Jar包做成EXE安装程序(2)

J a v a程序完成以后,对于W i n d o w s操作系统,习惯总是想双击某个e x e文件就可以直接运行程序,现我将一步一步的实现该过程.最 终结果是:不用安装J R E环境,不用安装数据库,直接双击一个e x e 文件,就可以运行程序. 下面我将以我最近写的一个程序作例子,进行该打包过程. 该程序是使用了:H i b e r n a t e,S p r i n g,D e r b y的J a v a G U I.(J D K 需要1.6版本,因该版本才有D e r b y),我使用的是E c l i p s e进行开发. 第一步:完成J a v a G U I程序 在E c l i p s e下,程序能够正常运行. 第二步:准备清单文件(M A N I F E S T.M F) 方法1:直接拷贝其它能运行的J A R文件中的M A N I F E S T.M F 进行修改 方法2:利用I D E工具,如E c l i p s e在生成J A R文件时自动生成 M A N I F E S T.M F内容如下: M a n i f e s t-V e r s i o n: 1.0 M a i n-C l a s s:m a n a g e r.u i.M a i n F r a m e C l a s s-P a t h: ./l i b/s p r i n g.j a r ./l i b/h i b e r n a t e.j a r ./l i b/d e r b y.j a r S p l a s h S c r e e n-I m a g e r: m a n a g e r/r e s o u r c e s/i m a g e s/s p l a s h.j p g 说明: M a n i f e s t-V e r s i o n-指定清单文件的版本号 M a i n-C l a s s-指定程序运行的入口类。注意:类名后不要加c l a s s扩展名 C l a s s-P a t h-指定支持库的路径。“.”指程序运行目录,即导出的J A R包所在目录。程序运行时依据C l a s s-P a t h项的设置路径来查找支持库。每一个支持库之间用空格隔开。在这里使用了 h i b e r n a t e,s p r i n g,d e r b y. 注意:

SVN服务器配置详细解说

SVN精细权限控制 原文链接: https://www.360docs.net/doc/961578907.html,/ayifa/blog/item/a7708c1885c221b54bedbc40.html 本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义。除此之外的其他配置、安装等内容,不是本文重点,读者若有什么疑问,请参考后面“参考文献”中列出的一些文档。 这里首先要注意一点,任何配置文件的有效配置行,都 “不允许存在前置空格” ,否则程序可能会出错,给你一个 “Option expected”的提示。也就是说,如果你直接从本文的纯文本格式中拷贝了相关的配置行过去,需要手动将前置的4个空格全部删除。当然了,如果你觉得一下子要删除好多行的同样数目的前置空格是一件苦差使,那么也许 UltraEdit 的“Column Mode”编辑模式,可以给你很大帮助。 svnserve.conf “arm\conf\svnserve.conf” 文件,是 svnserve.exe 这个服务器进程的配置文件,我们逐行解释如下。 首先,我们告诉 svnserve.exe,用户名与密码放在 passwd.conf 文件下。当然,你可以改成任意的有效文件名,比如默认的就是 passwd: password-db = passwd.conf 接下来这两行的意思,是说只允许经过验证的用户,方可访问代码库。 那么哪些是“经过验证的”用户呢?噢,当然,就是前面说那些在 passwd.conf 文件里面持有用户名密码的家伙。这两行的等号后面,目前只允许 read write none 三种值,你如果想实现一些特殊的值,比如说“read-once”之类的,建议你自己动手改源代码,反正它也是自由软件: anon-access = none auth-access = write 接下来就是最关键的一句呢,它告诉 svnserve.exe,项目目录访问权限的相关配置是放在 authz.conf 文件里:

svn独立服务器及eclipse客户端配置

SVN独立服务器与eclipse客户端的安装与配置 一、服务端配置 1、安装subversion 例如:Setup-Subversion-1.6.15.msi,按缺省方式安装即可 2、在资源管理器中创建svn服务根目录。 如D:\svn\Repositories 3、在svn根目录下建立一个代码版本仓库 进入dos窗口,执行以下命令: svnadmin create d:\svn\Repositories\repository 该命令会在根目录d:\svn\Repositories\下生成一个叫repository的目录,目录结构如下: 4、启动服务 (1)、命令行启动: svnserve -d -r D:\svn\Repositories 注:

-d 参数效果同于—daemo,告诉svnserve 以守护进程方式运行,这样在手动终止之前不会退出。

-r 参数效果同于--root,告诉svnserve 将会在端口3690 等待请求,设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL 的时间 如果不加root 参数,服务url 为:svn://localhost/ svn/ repository 而如果加上root 参数,服务url 为:svn://localhost/ repository 通常svn服务器都是远程的,所以记得将localhost换成实际的svn服务器的ip 另外,dos窗口不能关,否则服务将停止 不要关闭命令行窗口,关闭窗口会把svnserve 停止。 (2)、批处理文件启动 可直接创建.bat 文件来快速启动svn服务: @echo on @cd\ @cd C:\Program Files\Subversion\bin @rem start svn service Start svn service... @svnserve -d -r d:\svn\ Repositories\repository The svn sevice is run... :end 5、配置用户和权限 (1)、编辑d:\svn\Repositories\repository\conf下的svnserve.conf 去掉password-db=passwd前的注释 (2)、修改同目录下的passwd文件,在[users]下加上授权用户和密码,如: Username1 =password1

Eclipse中将项目导出jar包,以及转化成exe的方法

Eclipse中将项目导出jar包,以及转化成exe文件 2011-06-27 09:24 一、导出jar文件: 如果你的程序开发已经接近尾声了,正准备将其生成桌面可执行文件却不知道该如何操作时,你只要按照 以下步骤实行即可:选中你的项目---然后右击弹出选项列表---选择Export---Java---jar file---next---browser(选择jar的存放路径)---next---next(不管太多继续下一步)---browser(选择你 程序的主类--OK)---finish;查看你存放jar的目录,是否已经生成了?如果没有你一定没按照步骤操作. 二、运行jar文件: 生成的jar文件你可以双击运行它,但默认情况下会以压缩包的方式打开,如果这不是你想要的结果,请右 击文件---打开方式---选择java(TM)platform来运行.我想这时你应该看到了你的软件界面.先恭喜你了.. 三、连同第三方文件一并导出至jar文件: 如果你在程序开发的时候用到了第三方提供的API或者其它附属资源,在你导出生成jar文件时你必须将 第三方的文件一并导出,不然你的程序运行将达不到你想要的结果. 你可以利用Fat jar插件生成jar,Fat jar 的下载地址:https://www.360docs.net/doc/961578907.html,/projects/fjep/下载的文件是net.sf.fjep.fatjar_0.0.31.zip,解压缩后你会看到plugins文件夹中的 net.sf.fjep.fatjar_0.0.31.jar文件(简称Fat jar). 插件安装:把Fat jar文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后 查看Window---preferences,弹出的窗口中有Fat jar preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的 configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看 Window---preferences,你会发现Fat jar preferences这一项.恭喜你安装成功了.(未成功可直接去墙撞死).. 用Fat jar打包:右击你的项目,选项列表中有Build Fat jar这一项,选择它,弹出的窗口你会觉得特别 亲切,一目了然使用很方便,点击Browser(Main-Class选择你的主类)---next---finish(勾选你需要一起 打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利,否则就是你编程的问题了.. 另:如果你不想用Fat jar来打包,有一个更快捷的方法可以帮助你,但也是有缺陷的. 步骤:将你需要用到的附属文件放到你的jre安装目录下的\lib\ext目录中(安装JDK的同时也安装了jre),再通过(一、导出jar文件)的方式生成jar.这样就可以了.它有个致命的缺点就是,这样的jar文件只能在你本机可以使用,如果要在别的机子上运行必需在\lib\ext放置同样的附属资源. 四、将jar文件转换成exe可执行文件:

命令行下编译java并生成jar包(1)

命令行下编译java并生成jar包 jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java 存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部署)。 那我们的输入(要压缩的东西)主要是class文件,还有辅助的资源(这其中可能有图片,jsp文件,html文件等等)。Jar技术在jdk1.1版本中就已存在,在1.2中又有了增强。接下来说说jar的好处吧,这是官方的描述:安全,快速下载,压缩,猎取包,版本化包,可携。 说了这么多,我们现在开始实施。 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar –help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么: 用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名… 选项: -c 创建新的存档 -t 列出存档内容的列表 -x 展开存档中的命名的(或所有的〕文件 -u 更新已存在的存档 -v 生成详细输出到标准输出上 -f 指定存档文件名 -m 包含来自标明文件的标明信息 -0 只存储方式;未用ZIP压缩格式 -M 不产生所有项的清单(manifest〕文件 -i 为指定的jar文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和存档文件名都需要被指定,按‘m‘ 和?f‘标志指定的相同顺序。 示例1:将两个class文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvf classes.jar Foo.class Bar.class 示例2:用一个存在的清单(manifest)文件?mymanifest‘ 将foo/ 目录下的所有 文件存档到一个名为?classes.jar‘ 的存档文件中: jar cvfm classes.jar mymanifest -C foo/ . 来个小例子试试看: 我们只有一个HelloWorld,如下: public class HelloWorld{ public static void main(String[] args){ System.out.println(―Hi, Hello World!‖); } }

相关文档
最新文档