在play framework app中设置classpath顺序

时间:2011-06-28 20:01:52

标签: classpath playframework

我有一个项目需要解析一些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之后手动添加。

1 个答案:

答案 0 :(得分:0)

为什么不从nekohtml依赖项中排除xerces,然后按照您需要的顺序手动添加它作为单独的依赖项?