我有一个项目需要解析一些HTML文件作为播放应用程序的一部分。为了那个任务,我想我会申请nekohtml。我将nekohtml指定为dependencies.yml中的dep和isse'play dependencies'。这将nekohtml和xerces拉入lib文件夹。一切都很好。但是,nekohtml需要在类路径上的xerces之前才能正常工作。至于我在https://github.com/playframework/play/blob/master/framework/pym/play/application.py#L124可以看到,类路径上的jar的顺序是任意的,因为http://docs.python.org/library/os.html#os.listdir是否有可能以某种方式手动设置类路径上的jar的排序?
编辑:我的dependencies.yml看起来像这样:
require:
- play
- org.apache.poi -> poi 3.7
- net.sourceforge.nekohtml -> nekohtml 1.9.14:
transitive: false
- xerces -> xercesImpl 2.9.1
当我发出命令'play classpath'时,它会列出以下内容(摘录):
[ '/家/雷夫的/ dev /爪哇/乐趣/ TK / CONF', '/home/leif/dev/play/play-1.2/framework/play-1.2.jar', '/home/leif/dev/java/fun/tk/lib/jaxen-1.1.jar', '/home/leif/dev/java/fun/tk/lib/log4j-1.2.15.jar', '/home/leif/dev/java/fun/tk/lib/junit-4.8.1.jar', '/home/leif/dev/java/fun/tk/lib/jta-1.1.jar', '/home/leif/dev/java/fun/tk/lib/dom4j-1.6.1.jar', '/home/leif/dev/java/fun/tk/lib/xercesImpl-2.9.1.jar', '/home/leif/dev/java/fun/tk/lib/commons-collections-3.2.1.jar', '/home/leif/dev/java/fun/tk/lib/xml-resolver-1.2.jar', '/home/leif/dev/java/fun/tk/lib/xml-apis-1.3.04.jar', '/home/leif/dev/java/fun/tk/lib/antlr-2.7.6.jar', '/home/leif/dev/java/fun/tk/lib/poi-3.7.jar', '/home/leif/dev/java/fun/tk/lib/commons-logging-1.1.1.jar', '/home/leif/dev/java/fun/tk/lib/nekohtml-1.9.14.jar', '/home/leif/dev/play/play-1.2/framework/lib/jj-textile.jar', ...
所以xerces显然领先于nekohtml,即使传递dep被排除并在nekohtml之后手动添加。
答案 0 :(得分:0)
为什么不从nekohtml依赖项中排除xerces,然后按照您需要的顺序手动添加它作为单独的依赖项?