2010-03-08 25 views
14

herhangi bir şekilde ile ilgileniyorum, SubVersion'dan ödeme dosyaları için bir Ant görevi oluşturabilirim. Ben "sadece" kontrol komutunu komut satırından yapmak istiyorum. Bir süredir Eclipse Ant ve SubVersion kullanıyorum ama Ant ve SubVersion bilgim, Eclipse'e hep birlikte bağlanmam için güvendiğimden biraz eksik.SVN'den ANT görevi ile nasıl ödeme yapılır?

SvnAnt'e, http://subclipse.tigris.org/svnant/svn.html numaralı telefondan Dicle Nehri'nden bir alt bölümün parçası olan bir çözüm olarak bakıyorum. İyi çalışıyor olabilir, ama tek yaptığım NoClassDefFoundErrors. Daha deneyimli olan bu muhtemelen basit bir Ant yapılandırma sorunu gibi görünüyor, ama ben bunu bilmiyorum. Svnant.jar ve svnclientadapter.jar'ı Ant lib dizinine kopyaladım. Sonra aşağıdaki kaçmaya çalıştı:

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

Windows XP 32-bit SVN 1.7 ve SvnAnt 1.3 çalıştırıyorum:

<?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> 

ki ben şu yanıtı almak için.

Herhangi bir işaretçi için teşekkürler!

+0

http://stackoverflow.com/questions/16305315/the-svn-client-svnkit -is-not-available/16310312 # 16310312 –

cevap

7

Bu hatadan, muhtemelen sınıf yolunuzda da JavaHL jar'e ihtiyacınız var gibi görünüyor (JavaHL, Subversion API'sı için Java dil bağlamalarıdır). http://subclipse.tigris.org/wiki/JavaHL

Aksi takdirde bir yerli komutu çalıştırmak için kullanılması Ant kullanabilirsiniz (ama bu tabii ki işletim sistemi kaynaklı yapacak): Bir

Bu URL yardımcı olabilir. Eğer komut satırı istemcisi kullanmayı Ant olsun çalışıyorsanız

3

, aşağıdakileri yapmanız gerekebilir:

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

Ya javahl veya svnkit özniteliklerini ayarlamıyorsam, NoClassDefFoundError alırım. Bir veya her ikisini de doğru veya yanlış olarak ayarlarsam, "javahl, svnkit veya komut satırı svn istemcisini bulamıyorum". Sınıf kombinasyonunda svnjavahl.jar ile birlikte ve olmadan tüm kombinasyonları denedim. – Josh

+0

Ant dosyasında aşağıdakileri yaparsanız, PATH yankılandı SVN ikili dizini içerir mi? user261840

+0

Ya bir JavaHL veya b) bir komut satırı ile subversion için çalışan bir yerel Java bağlamaları olması gerekir svn istemcisi, yolunuzda kullanılabilir. Bu cevapta öneri b) için çalışır. –

5

bu sizin için yardımcı olur görelim, ben svnjavahl.jar, svnClientAdapter.jar kopyalanan ve $ ANT_HOME/lib klasörüne svnant.jar.

Sonra xml dosyasında

:

<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" /> 

Ve sonra, ..

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

kontrol için sana lib klasörüne svnjavahl.jar dosyanın üzerine kopyalanan sığınak çünkü sizin hatayı alıyorsanız düşünüyorum. Bunu yap ve işe yaramalısın.

Sadece dolayısıyla bunu SvnAnt çalışma alamazsanız sizin svnjavahl.jar.

23

, her zaman kullanabilirsiniz bulamıyorum, BİR kavanoz, benim gibi değil **/*.jar dahil, bir şey fark exec:

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

Mükemmel! Teşekkürler! Eğer bunu yapabilirsen svnAnt'ın ne olduğundan emin değil misin? – KOGI

+2

Teorik olarak, daha az çapraz platform uyumlu olduğundan, ant görevlerinde 'dan kaçınmak istiyorsunuz. Ama bu her durumda önemli değil. –

+2

Benim durumumda en iyi çözümdü. Çok basit (sadece bir svn istemcisi (benim durumumda Sliksvn) yükleyin, PATH noktasını sliksvn/bin'e getirin ve hepsi bu. Svnant ve javahl bir karışıklıktır ... – jmcollin92

0

Aynı sorunla hemen hemen aynı kurulum yaptım.

Ben 2 svn silerek onu çözüldü * .jar ben

/usr/share/ant/lib 

önceki altında benim karınca (debian) yüklemek içinde vereceğini bu. Karınca çoklu kavanozlar tarafından karıştırıldı.senin <typedef> hiç bir sınıfyolu ihtiyacı yoktur bu yüzden

3
  1. tüm .jar ANT_HOME/lib dosyaları (ve ${user.home}/.ant/lib ve diğer bazı yerler), otomatik olarak kullanılabilir.

  2. Önceki dağıtım 1.7 sürümü için güncelleştirilmemiş. Hala svnant.jar kullanabilirsiniz, ancak güncel versiyonlarıyla svnant.1.3

    svnClientAdapter.jar 
    svnjavahl.jar 
    

    bu kavanozları değiştirmeleri gerekir. Ben subclipse 1.8 dağılımından bu çıkarılan ve hatta onları adlandırmak yoktu:

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

Gerçekten de bu bana yardımcı oldu. hata o zaman muhtemelen svnant dağılımı tarafından desteklenmeyen subversion 1.7 kullanıyorsunuz demektir, bu yüzden sadece iki kütüphaneyi yukarıdan ekleyin ve çalışmalıdır. –

+0

2014 ve hala SVNAnt'den 1.6'dan daha yüksek bir şey için destek yok. Sanırım CLI'yi kullanıyorlar. –

0

Ben böyle devam almak için bu sayfayı çok yararlı buldum. son sürümü için ben şöyle svn ayarları ayarlama onaylanmış yolu olduğunu bulduk:

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

Aslında istediğim: SVN komutu kendisi olması gerektiği anlamına gelir

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

svnkit modu.

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

org.tigris: Yukarıda belirtilen kütüphaneler ancak aynı zamanda ilave aşağıdaki gerekli Tamam .subversion.clientadapter.svnkit_1.7.9.2.jar

Bunlar, belirtilen alt bölüm indirmesinde kullanılabilir. tmatesoft da gerekli:

antlr-3.5.2-complete.jar

Mevcut buradan: Antlr