2010-03-08 3 views
14

어떤 식 으로든에 관심이 있습니다. 하위 버전의 파일을 체크 아웃하는 Ant 태스크를 만들 수 있습니다. 필자는 명령 행에서 체크 아웃을하고 싶습니다. 나는 지금 Ant와 SubVersion으로 Eclipse를 사용 해왔다.하지만 Eclipse에 의존하여 Ant와 SubVersion의 지식이 부족하다.ANT 작업으로 SVN에서 체크 아웃하는 방법은 무엇입니까?

저는 SvnAnt를 티그리스의 Subclipse의 일부인 하나의 솔루션으로보고 있습니다 (http://subclipse.tigris.org/svnant/svn.html). 문제가 없지만 NoClassDefFoundErrors 만 있습니다. 좀 더 경험이 많으면이 설정은 아마 간단한 앤트 설정 문제처럼 보일지 모르지만 나는 그것에 대해 모른다. svnant.jar 및 svnclientadapter.jar을 Ant 라이브러리의 Ant 디렉토리에 복사했습니다. 그럼 난 다음 실행하려고 :

build.xml:17: java.lang.NoClassDefFoundError: org/tigris/subversion/javahl/SVNClientInterface 

나는 윈도우 XP 32 비트에 SVN 1.7 SvnAnt 1.3을 실행하고 있습니다 :

<?xml version="1.0"?> 

<project name="blah"> 

<property environment="env"/> 

<path id="svnant.classpath"> 
    <pathelement location="${env.ANT_HOME}/lib"/> 
    <fileset dir="${env.ANT_HOME}/lib/"> 
    <include name="svnant.jar"/> 
    </fileset> 
</path> 

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" /> 

<target name="checkout"> 
    <svn username="abc" password="123"> 
    <checkout url="svn://blah/blah/trunk" destPath="workingcopy"/> 
    </svn> 
</target> 

</project> 

어느 나는 다음과 같은 응답을 얻을 수 있습니다.

모든 포인터 주셔서 감사합니다!

+0

http://stackoverflow.com/questions/16305315/the-svn-client-svnkit -is --사용할 수 없습니다/16310312 # 16310312 –

답변

7

오류로 인해 클래스 경로에도 JavaHL jar가 필요할 것 같습니다 (JavaHL은 Subversion API의 Java 언어 바인딩 임). 이 http://subclipse.tigris.org/wiki/JavaHL

그렇지 않으면 기본 명령을 실행하는 데 사용 Ant를 사용할 수 있습니다 (하지만 물론이 OS에 의존 할 것) : 당신은

이 URL은 도움이 될 수 있습니다. 명령 행 클라이언트를 사용하여 개미를 얻으려고 노력하는 경우

3

, 다음을 수행 할 수 있습니다 :

<svn username="abc" password="123" javahl="false" svnkit="false"> 
+1

내가 JavaHL을 또는 svnkit 중 하나를 설정하지 않으면 내가 NoClassDefFoundError를 얻을 다음 속성. 하나 또는 둘 다 true 또는 false로 설정하면 javahl, svnkit 또는 명령 줄 svn 클라이언트를 찾을 수 없습니다. 나는 classpath에 svnjavahl.jar의 유무에 관계없이 모든 조합을 시도했다. – Josh

+0

Ant 파일에서 다음을 수행하면 PATH에 에코 된 SVN 바이너리 디렉토리가 포함되어 있습니까? user261840

+0

a) JavaHL로 서브 버전 작업을하는 기본 Java 바인딩 또는 b) 명령 행 귀하의 경로에 svn 클라이언트를 사용할 수 있습니다. 이 대답의 제안은 b)에서 효과가 있습니다. –

5

이 당신을 위해 도움이되는지 볼 수 있습니다, 나는 svnjavahl.jar, svnClientAdapter.jar 복사 및 svnant.jar을 $ ANT_HOME/lib 폴더에 복사하십시오.

다음 XML 파일에

:

<path id="svnant.classpath"> 
    <fileset dir="${ABSOLUTE-PATH-TO-ANT-HOME}/lib"> 
     <include name="**/*.jar"/> 
    </fileset> 
</path> 

<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" /> 

그리고는 ..

<svn dateFormatter="yyyy-MM-dd HH:mm"> 
    <checkout url="${MY-REPO-PATH}" 
       destpath="${checkout.dir}/MODULE-NAME" 
         .... 
</svn> 

을 확인하기 위해 나는 당신이 lib 폴더에 svnjavahl.jar 파일 복사 havent 한 때문에 당신이 당신의 오류가있다 생각합니다. 그렇게하면 효과가 있습니다.

은 그냥 따라서 당신이 SvnAnt가 작동하지 않는 경우 svnjavahl.jar.

23

, 당신은 항상 사용할 수 있습니다 찾을 수 없습니다, ONE 단지, 내가 좋아하지 **/*.jar를 포함하는, 뭔가를 발견 간부 :

<exec executable="/usr/local/bin/svn"> 
    <arg value="co" /> 
    <arg value="svn://repository/url" /> 
    <arg value="/destination/directory" /> 
</exec> 
+0

완벽한! 감사! 당신이 이것을 할 수 있다면 svnAnt의 요점은 무엇인지 모르십니까? – KOGI

+2

이론 상으로는 플랫폼 간 호환성이 낮기 때문에 개미 작업에서 을 피하기를 원합니다. 그러나 그것은 모든 경우에 중요하지 않습니다. –

+2

내 경우에는 최고의 솔루션이었습니다. 아주 단순한 (그냥 내 사건에 Sliksvn 클라이언트를 설치), PLS는 sliksvn/bin을 가리킨 다음 그게 다야 .svnant와 javahl은 엉망이다 ... – jmcollin92

0

나는 동일한 문제로 거의 동일한 설정을했습니다.

내가 2 SVN을 삭제하여 그것을 해결 *의 .jar 내가

/usr/share/ant/lib 

이전에서 내 개미 (데비안) 설치에 넣어 거라고합니다. 개미는 여러 개의 항아리로 혼란스러워했습니다.당신의 <typedef>이 전혀 클래스 경로를 필요로하지 않도록

3
  1. 모든 .JAR ANT_HOME/lib 디렉토리에있는 파일 (및 ${user.home}/.ant/lib 및 다른 장소), 자동으로 사용할 수 있습니다.

  2. svnant 유통

    버전 1.7 업데이트되지 않았습니다. 당신은 여전히 ​​svnant.jar를 사용할 수 있지만 업데이트 된 버전 svnant.1.3

    svnClientAdapter.jar 
    svnjavahl.jar 
    

    에서 이러한 병을 교체해야합니다. 나는 subclipse 1.8 배포판이를 추출하고, 심지어 이름을 변경하지 않았다

    org.tigris.subversion.clientadapter.javahl_1.7.2.jar 
    org.tigris.subversion.clientadapter_1.8.0.jar 
    
+0

실제로 이것이 나를 도왔다. 오류가 발생했다면 아마도 svnant 배포판에서 아직 지원되지 않는 Subversion 1.7을 사용하고있을 것입니다. 그래서 위의 두 라이브러리를 추가하면 제대로 작동합니다. –

+0

2014 및 여전히 SVNnt에서 1.6 이상 아무것도 지원하지 않습니다. 나는 그들 스스로 CLI를 사용하고 있다고 생각한다. –

0

내가이 프로젝트를 알고 있다면이 페이지가 매우 도움이되었다고합니다. 최신 버전은 나는 다음과 같이 SVN 설정을 설정하는 승인 된 방법은 것으로 나타났습니다 :

<svn refid="svn.settings">//Other commands</svn>

실제로 원하는 다음 SVN 명령 자체가되어야한다는 의미

<svnSetting svnkit="true" javahl="false" id="svn.settings" />

svnkit 모드.

org.tmatesoft.sqljet_1.1.7.r1256_v20130327_2103.jar org.tmatesoft.svnkit_1.7.9.r9659_v20130411_2103.jar

org.tigris을 : 위에서 언급 한 라이브러리는 그러나 나는 또한이 추가 된 다음 필요한 확인했다 .subversion.clientadapter.svnkit_1.7.9.2.jar

이들은 모두 언급하여 Subclipse 다운로드에서 사용할 수 있습니다. tmatesoft도 필요 :

ANTLR-3.5.2-complete.jar

가능한 여기에서 : Antlr

관련 문제