大家在Ant脚本里, 谁引用过打在JAR包里的lib文件夹里的JAR文件作为ClassPath啊?
大家在Ant脚本里, 谁引用过打在JAR包里的lib文件夹里的JAR文件作为ClassPath啊?
各位兄弟好,我有个Ant问题, 十分感谢!
我写了个Eclipse插件, 并打包发布在安装MyEclipse的根目录下./MyEclipse/eclipse/plugins/MyPlugin.jar.
此插件依赖于另一个存着所有第三方依赖JAR包的插件MyThirdLibPlugin.jar.
我也把这个插件打包放在安装MyEclipse的根目录下./MyEclipse/eclipse/plugins/MyThirdLibPlugin.jar.
然后用MyEclipse运行我这个./MyEclipse/eclipse/plugins/MyPlugin.jar(此插件依赖于MyThirdLibPlugin.jar)
因为MyPlugin.jar运行时,需要运行一段Ant脚本, 在Ant脚本里,第一个Target就要读取所需的所有依赖JAR包, 也就是设置
classpath, 如下:
<path id="project.classpath2">
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
因为这些依赖的JAR包,
我都打包在上面所说的MyPlugin.jar所依赖的MyThirdLibPlugin.jar包的lib目录下
./MyEclipse/eclipse/plugins/MyThirdLibPlugin.jar:lib/
我的问题是, 在给"${lib.dir}"传值时,
在前面的Property里, 我传递的这个"${lib.dir}", 可以如下这么些吗?
我在看Ant的官方开发指南, 有这么段:
public class Path
extends DataType
implements java.lang.Cloneable
This object represents a path as used by CLASSPATH or PATH environment variable.
因为Ant所依赖的JAR包都放在要运行的MyPlugin.jar所依赖的MyThirdLibPlugin.jar包的lib目录下.
我上面这么写对吗? 有语法错误吗? Ant可以识别这个目录吗?
如果不这么写, 那这种情况吗应该怎么写啊?
你这么扩展能在linux下用吗? linux是用“:”代替windows下的“;”,我相信你找的那段代码就是在linux下的设置classpath的方法,而你却认为它是jar包里的jar, 根本不是这么回事。
我不知道为什么要在MyThirdLibPlugin.jar里建一个lib目录,是eclipse的plugin开发要求这样的吗? 我记得好像没有这个要求。Eclipse在运行plugin的时候也是在classpath里找到要找的类就可以了,怎么会到一个jar里再找一个目录lib,然后再找jar呢?
建议你试一下,把你的MyThirdLibPlugin.jar里的lib下的jar全部先unjar, 再打成你的MyThirdLibPlugin.jar, 我相信这样一定能行。
把你需要的包解压出来 然后直接覆盖到另外一个解压的包中 然后重新保存为jar类型 ,这样两个包就成一个包了