BUILD FAILED D:\xxxxxtrunk\project-java\build.xml:25: Reference task.path not found.
嘛,哪里是在build.xml
文件中定义的类路径task.path
?
当您通过<taskdef>
定义任务,你需要做的几件事情:
- 你需要在任务存在指定的jar文件。
- 您需要指定包含任务的类,以及如何在jar中找到它。这可以通过以下两种方式之一完成:
- 你说这个班级在
com.foo.bar.mytask
,然后给它一个名字。
- 你终于可以指定在罐子的资源(无论是属性文件或XML文件),这几乎是说什么类与每个名称(这是
resource="org/tigris/subversion/svnant/svnantlib.xml"
正在做相关的。
- ,则需要指定如何找到jar文件。
那你就错过最后一个。你指定的类路径称为一个task.path
参考,但实际上并没有定义的类路径。
有几件事情可以做:
这是我的偏好,以下是我通常的做法。
<taskdef resource="org/tigris/subversion/svnant/svnantlib.xml">
<classpath>
<fileset dir="${basedir}/antlib/svnant}"/>
</classpath>
</taskpath>
在你的项目中,创建一个名为${basedir}/antlib/svnant
目录,并把与该目录中该SVNAnt任务就全部五个罐子。这样,您的可选构建任务所需的所有jar现在都在您的项目中。如果有人从版本控制系统中检出项目,他们会自动获取所需的任务罐。
我把我所有的可选ant任务罐放在那个目录下,然后把它们放在它们自己的目录中。
还记得我说过你需要的一件事是指定包含任务的类吗? 这里是你指定了org/tigris/subversion/svnant/svnantlib.xml
文件看起来像svnant.jar
:
<?xml version="1.0"?>
<antlib>
<!-- Tasks -->
<taskdef name="svn"
classname="org.tigris.subversion.svnant.SvnTask" />
<!-- Types -->
<typedef name="svnFileSet"
classname="org.tigris.subversion.svnant.types.SvnFileSet" />
<!-- Selectors -->
<typedef name="svnNormal"
classname="org.tigris.subversion.svnant.selectors.Normal" />
<typedef name="svnAdded"
classname="org.tigris.subversion.svnant.selectors.Added" />
<typedef name="svnReplaced"
classname="org.tigris.subversion.svnant.selectors.Replaced" />
<typedef name="svnModified"
classname="org.tigris.subversion.svnant.selectors.Modified" />
<typedef name="svnConflicted"
classname="org.tigris.subversion.svnant.selectors.Conflicted" />
<typedef name="svnIgnored"
classname="org.tigris.subversion.svnant.selectors.Ignored" />
<typedef name="svnUnversioned"
classname="org.tigris.subversion.svnant.selectors.Unversioned" />
<typedef name="svnLocked"
classname="org.tigris.subversion.svnant.selectors.Locked" />
<typedef name="svnMissing"
classname="org.tigris.subversion.svnant.selectors.Missing" />
<typedef name="svnDeleted"
classname="org.tigris.subversion.svnant.selectors.Deleted" />
<!-- Conditions -->
<typedef name="svnExists"
classname="org.tigris.subversion.svnant.conditions.Exists" />
</antlib>
这只是任务名称的地图到罐内类。
知道了,'<路径ID = “task.path”>'被宣布之后到build.xml中。现在可以了。谢谢! – Someday