操作系统升级后让我的ANT版本工作的问题

我最近将我的系统从Mint12升级到了Mint14,并且让我的旧项目在新系统上运行得很好。 总结一下:

  • 得到了Mint14很好地工作并安装了我所有必需的软件(Eclipse,ANT等)
  • 从我的备份磁盘恢复了我的文件
  • 将Oracle JDK设置为默认的Java版本
  • 从SVN查看我的项目的新副本
  • 更新了构建文件中的所有路径以反映新的user_id

这一切都很好,但我的ant构建似乎已经搞砸了,不知何故,当我尝试构建我的项目时,我得到以下错误:

~/new_workspace/my_project $ ant dist Buildfile: /home/my_userid/new_workspace/my_project/build.xml [taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found. init: compile: [javac] /home/my_userid/new_workspace/my_project/build.xml:246: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds static: dist: [svn]  started ... [svn] svn: This client is too old to work with working copy '/home/my_userid/new_workspace/my_project'; please get a newer Subversion client [svn] svn: This client is too old to work with working copy '/home/my_userid/new_workspace/my_project'; please get a newer Subversion client [svn]  failed ! BUILD FAILED /home/my_userid/new_workspace/my_project/build.xml:104: Can't get status of /home/my_userid/new_workspace/my_project Total time: 0 seconds 

我注意到“太老了,无法使用工作副本……”但是当我检查svn --version我发现它是1.7.5应该没问题。 请注意,服务器上的SVN版本没有同时更改。 一个理论是项目(通过Eclipse检查,使用Subclipse 1.6)不能与ANT使用命令行的版本一起使用,但在这种情况下,客户端版本不是太旧,而是太新了!? 是否值得“降级”Subversion?

否则可能是什么问题,我该如何解决? 是否存在其他常见问题(可能在发行版升级/迁移期间发生)我应该检查以确保项目按预期工作? (以下是构建文件的相关位)


此位定义svn绑定

       <!--  tried this as well but no joy -->   

“dist”目标中的相关位:

          ... 

我看到第一个问题:

 [taskdef] Could not load definitions from resource net/sf/antcontrib/antlib.xml. It could not be found. 

这告诉我你的build.xml文件中有一个任务,并且它无法再找到缺少的可选Ant jar。

我的理论 :在$ANT_HOME/lib下的旧Ant版本中,安装了Ant-Contrib jar。 由于此目录默认位于Ant的$CLASSPATH ,因此您无需在任务行中指定它,因此它看起来像这样:

  

我总是建议您始终将这些可选任务jar放入项目中。 这样,没有人必须安装这些jar子才能使它们工作,因为它们已经在项目中:

  • 创建一个目录/home/my_userid/new_workspace/my_project/antlib/ac ,这样你的项目就会有一个目录antlib/ac
  • 在此目录中,下载并安装ant-contrib-1.03.jar
  • 现在更改以将此jar包含在其类路径中。

它应该如下所示:

     
		      	

David提到使用常春藤来管理第三方依赖。

此示例演示了如何通过构建下载和缓存ant-contrib和subversion依赖项。

关于颠覆问题,我总是发现在ANT中启用它是有问题的。 我想要的是一个纯粹的Java方法会更强大和跨平台。 我的解决方案是svnkit ,然后创建一个宏来调用命令行客户端。

演示使用常春藤来管理subversion和ant-contrib依赖关系。 使用cachepath任务在线声明依赖项。 如果您正在管理多个类路径,请使用单独的ivy.xml文件

 Apache Ant(TM) version 1.8.2 Apache Ivy 2.3.0-rc2 

build.xml文件

                                Letter @{letter}