SvnAnt не работает на открытом suse 11.4 - PullRequest
0 голосов
/ 20 марта 2012

Я хочу использовать SvnAnt, чтобы получить последний код из нашего хранилища svn, собрать и развернуть его.Я выполнил все остальные части, и осталась только проверочная часть. Я использую svnant 1.2.1.Но в svnant.jar я нашел только файл * .xml.Вот что я сделал для того же:

<?xml version="1.0"?>

<project name="Update" basedir="." default="update">

  <!--  all properties are in build.properties -->
  <property file="build.properties" />
  <path id="project.classpath">
    <pathelement location="${svnjavahl.jar}" />
    <pathelement location="${svnant.jar}" />
    <pathelement location="${svnClientAdapter.jar}" />
  </path>
  <property name="project.svn.url" value="projectURL" />

  <typedef resource="org/tigris/subversion/svnant/s​vnantlib.xml" classpathref="project.classpath"/>

  <target name="update">
    <svn>
      <checkout url="${project.svn.url}" revision="HEAD" destPath="." />
    </svn>
  </target>

</project>

Однако при запуске он выдает следующее:

    crazyabtliv@linux-hknk:~> ant -v -f svn.xml 
Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Buildfile: /home/crazyabtliv/svn.xml
Detected Java version: 1.6 in: /usr/java/jdk1.6.0_26/jre
Detected OS: Linux
parsing buildfile /home/crazyabtliv/svn.xml with URI = file:/home/crazyabtliv/svn.xml
Project base dir set to: /home/crazyabtliv
parsing buildfile jar:file:/home/crazyabtliv/apache-ant-1.8.2/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/home/crazyabtliv/apache-ant-1.8.2/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
 [property] Loading /home/crazyabtliv/build.properties
  [typedef] Could not load definitions from resource org/tigris​/subversion/svnant/s​vnantlib.xml. It could not be found.
Build sequence for target(s) `update' is [update]
Complete build sequence is [update, ]

update:

BUILD FAILED
/home/crazyabtliv/svn.xml:16: Problem: failed to create task or type svn
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

    at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:487)
    at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:419)
    at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
    at org.apache.tools.ant.Task.perform(Task.java:347)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds
crazyabtliv@linux-hknk:~> 

В чем проблема?Существуют ли другие файлы jar, которые нужно добавить?Что еще нужно сделать?Спасибо, я также пытался сохранить файлы jar в ant / lib, но это вывело ту же ошибку

1 Ответ

2 голосов
/ 20 марта 2012

Если вы используете svnant 1.1 или выше, вам нужно иметь taskdef, подобный этому:

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

Метод:

<taskdef resource="svntask.properties" classpathref="project.classpath"/>

для версии svnant 1.0 .

Вы можете легко это проверить, открыв файл svnant * .jar и посмотрите, есть ли

  • org / tigris / subversion / svnant / svnantlib.xml
  • svntask.properties

В зависимости от результата вы должны использовать первый или второй подход.

Другой вариант - указать соответствующий класс:

<taskdef name="svn" 
    className="org.tigris.subversion.svnant.SvnTask"
    classpathref="project.classpath"/>
...