Java 当我将1.7版本复制到Ant lib文件夹中时,为什么Ant使用Velocity 1.4?
我有一个用Ant构建的项目。我的问题是,它需要Velocity才能正确构建,但当我将Velocity复制到ant lib文件夹(1.7)中时,我可以在Velocity日志中看到,出于某种原因,它使用了Java 当我将1.7版本复制到Ant lib文件夹中时,为什么Ant使用Velocity 1.4?,java,ant,velocity,Java,Ant,Velocity,我有一个用Ant构建的项目。我的问题是,它需要Velocity才能正确构建,但当我将Velocity复制到ant lib文件夹(1.7)中时,我可以在Velocity日志中看到,出于某种原因,它使用了1.4: 2016年5月3日星期二10:16:29 CEST[信息]雅加达Velocity v1.4版启动 这怎么可能?我检查了MANIFEST文件,我复制到Ant的版本确实是1.7。如果我删除它,Ant构建将失败,因此我确定正在使用这个.jar,但是在velocity.log文件中,我看到velo
1.4
:
2016年5月3日星期二10:16:29 CEST[信息]雅加达Velocity v1.4版启动
这怎么可能?我检查了
MANIFEST
文件,我复制到Ant的版本确实是1.7
。如果我删除它,Ant构建将失败,因此我确定正在使用这个.jar,但是在velocity.log
文件中,我看到velocity1.4
启动了。有什么问题吗?1.4以上的Velocity版本从“雅加达Velocity”更名为“Apache Velocity”。代码段:
显然,类路径中有Velocity 1.4,尽管类路径中也有1.7
回答更一般的问题:
“如果应该使用x.z版本,为什么要使用x.y版本?”
解决方案#1(运行时)
- 获取java进程的id:
jps-v
- 获取类路径(和其他信息):
jinfo$pid
- 寻找多个速度罐。速度1.4很可能在1.7之前
RuntimeInstance
class)
- 导航到您的ant发行版
- 在**/*.jar中为i运行
命令,该命令将查找给定类名的所有JAR。如果velocity被包装在另一个罐子中(而不是作为单独的人工制品出现),这会有所帮助;dojar-tvf“$i”| grep-Hsi运行时实例和echo“$i”;完成
当然,还有一些其他方法可以让你看到不同的版本——也许你修补了ant的错误分布,也许你的速度潜藏在系统类路径的某个地方。然而,以上两种方法的结合应该突出版本不匹配的根本原因。Velocity 1.4以上版本从“Jakarta Velocity”重新命名为“Apache Velocity”。代码段: 显然,类路径中有Velocity 1.4,尽管类路径中也有1.7 回答更一般的问题: “如果应该使用x.z版本,为什么要使用x.y版本?” 解决方案#1(运行时)
- 获取java进程的id:
jps-v
- 获取类路径(和其他信息):
jinfo$pid
- 寻找多个速度罐。速度1.4很可能在1.7之前
RuntimeInstance
class)
- 导航到您的ant发行版
- 在**/*.jar中为i运行
命令,该命令将查找给定类名的所有JAR。如果velocity被包装在另一个罐子中(而不是作为单独的人工制品出现),这会有所帮助;dojar-tvf“$i”| grep-Hsi运行时实例和echo“$i”;完成
当然,还有一些其他方法可以让你看到不同的版本——也许你修补了ant的错误分布,也许你的速度潜藏在系统类路径的某个地方。但是,以上两种方法的结合应该突出显示版本不匹配的根本原因。您是否尝试使用
-diagnostics
选项运行ant
?它为您提供了一些加载jar的细节。不,我使用了-debug
选项,类路径上只有1.7
.jar。您是否尝试使用-diagnostics
选项运行ant
?它提供了一些关于jar加载的细节。不,我使用了-debug
选项,类路径上只有1.7
.jar。