没有比人更高的山

Working copy path '*' does not exist in repository的解决方法0

开发中对一个working copy进行update操作的时候出现了标题所示的错误,因为在update之前对其进行了switch操作,因此猜想可能是因为这个缘故,上网查了一下,找到一篇文章《SVN merger errors: Working copy path ‘*’ does not exist in repo》,按照其描述的方法并不能解决我的问题,但是让我对.svn文件夹下的这个entry文件产生了兴趣,仔细的看了一下,发现这个文件里面有一行是写的版本号,紧接着下一行就是文件夹路径,但是这个文件夹路径是错误的。

    对其进行了改正后,重新update,正常了,看来是svn的一个bug吧。

VN:F [1.7.5_995]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.5_995]
Rating: 0 (from 0 votes)

一个ant的build.xml文件实例0

很简单,很实用,写完之后,发现,嘿嘿!我居然可以不翻doc写build文件了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="utf-8" ?>
<project name="dian_bid" basedir="." default="deploy">
 
 <property name="source" location="src" />
 <property name="resource" location="res" />
 <property name="test-srouce" location="test" />
 <property name="release-resource" location="release" />
 <property name="dest" location="dest" />
 
 <property name="webroot" location="web"/>
 <property name="tomcat-root" location="D:/Java/apache-tomcat-a"/>
 
 <target name="clean">
  <echo message="清理生成过程中的临时文件" />
  <delete dir="${tomcat-root}/webapps/bid" />
  <delete dir="${webroot}/WEB-INF/classes" />
  <delete dir="${dest}" />
 </target>
 
 <target name="prepare" depends="clean">
  <mkdir dir="${webroot}/WEB-INF/classes"/>
  <mkdir dir="${dest}" />
 </target>
 
 <target name="build" depends="prepare">
  <echo message="编译Java源代码" />
  <javac destdir="${webroot}/WEB-INF/classes" srcdir="${source}">
   <sourcepath path="${test-srouce}" />
   <classpath>
    <fileset dir="${tomcat-root}/lib">
     <include name="**/*.jar"/>
    </fileset>
    <fileset dir="${webroot}/WEB-INF/lib">
     <include name="**/*.jar"/>
    </fileset>
   </classpath>
  </javac>
 </target>
 
 <target name="package" depends="build">
  <echo message="将Web工程打包成war可部署文件格式" />
  <copydir dest="${webroot}/WEB-INF/classes" src="${resource}" />
  <copydir dest="${webroot}/WEB-INF/classes" src="${release-resource}" />
  <war destfile="${dest}/bid.war"  basedir="${webroot}" webxml="${webroot}/WEB-INF/web.xml"/>
 </target>
 
 <target name="deploy" depends="package">
  <echo message="开始部署BID系统到服务器上" />
  <copy file="${dest}/bid.war" todir="${tomcat-root}/webapps" />
  <echo message="停止tomcat服务器" />
  <exec executable="${tomcat-root}/bin/shutdown.bat" />
  <echo message="启动tomcat服务器" />
  <exec executable="${tomcat-root}/bin/startup.bat" />
  <echo message="部署BID系统完成" />
 </target>
</project>
VN:F [1.7.5_995]
Rating: 9.0/10 (3 votes cast)
VN:F [1.7.5_995]
Rating: +1 (from 3 votes)

Java中的静态导入:import static3

静态导入是JDK1.5里面的新的特性

一般我们常写
import java.util.*;
意思是导入util包下的所有类,然后使用下面的语句用sort对alist进行排序。
Collections.sort(alist);

在jdk1.5中,我们可以写
import static java.util.Collections.*;
意思是导入Collections类的所有静态方法(注意只是静态方法),这样我们可以使用下面的语句达到同样的效果:
sort(alist);

读到这里,可能很多人就要想了,System.out.println(”");应该也可以写简单一点吧(我开始也是这么想的)。不好意思,呵呵,println是out的实例方法,非静态方法,不能用上面的简写的。

但是可以用一种变通的方法,自己实现一个静态的println,然后调用这个就行了。

import的作用就是告诉编译器,当你遇到无法解析的名字时,去某个路径找。所以当编译器遇到sort后,就在java.util.Collections下找到了sort这个名字(函数签名),然后再找是否有匹配的函数。结果以下的奇怪东西就有意思了:
import static java.util.Arrays.sort;
import static java.util.Collections.sort;
两个sort毫无冲突,因为这两个类没有相同的sort函数(函数签名不一样),邻里融洽。

其实这种方法真是很无奈。

VN:F [1.7.5_995]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.5_995]
Rating: 0 (from 0 votes)


Switch to our mobile site