为什么不播放排除我的依赖?

时间:2011-12-19 14:51:15

标签: dependencies playframework

我的deps文件:

- org.hibernate -> hibernate-core 3.6.8.Final:
    force: true
    exclude:
        - ant -> ant 1.6.5

- org.apache.ant -> ant 1.8.2

(请注意,我尝试排除的蚂蚁来自ant群组,而我所包含的蚂蚁来自org.apache.ant - 遗憾的是,ant群组没有但是包含蚂蚁1.8.2)。

当我运行游戏deps时,我发现排除没有生效,我最终在我的lib文件夹中找到了两个版本的ant。

play deps --sync --debug的输出为here。关于如何解决这个问题的任何建议? 这是没有--debug的较短输出:

~ Resolving dependencies using C:\work\CS\portal\src\conf\dependencies.yml,
~
~   org.hibernate->hibernate-core 3.6.8.Final (from mavenCentral)
~   javax.validation->validation-api 1.0.0.GA (from mavenCentral)
~   ant->ant 1.6.5 (from mavenCentral)
~   javassist->javassist 3.12.0.GA (from mavenCentral)
~   cglib->cglib 2.2 (from mavenCentral)
~   asm->asm 3.1 (from mavenCentral)
~   org.apache.ant->ant 1.8.2 (from mavenCentral)
~   org.apache.ant->ant-launcher 1.8.2 (from mavenCentral)
~
~ Some dependencies have been evicted,
~
~   hibernate-core 3.6.1.Final is overriden by hibernate-core 3.6.8.Final
~   hibernate-jpa-2.0-api 1.0.1.Final is overriden by hibernate-jpa-2.0-api 1.0.0.Final
~   commons-collections 3.1 is overriden by commons-collections 3.2.1
~
~ Installing resolved dependencies,
~
~   lib/hibernate-core-3.6.8.Final.jar
~   lib/ant-1.8.2.jar
~   lib/validation-api-1.0.0.GA.jar
~   lib/ant-1.6.5.jar
~   lib/javassist-3.12.0.GA.jar
~   lib/cglib-2.2.jar
~   lib/asm-3.1.jar
~   lib/ant-launcher-1.8.2.jar
~
~ *****************************************************************************
~ WARNING: These dependencies are missing, your application may not work properly (use --verbose for details),
~
~   org.jboss.javaee->jboss-jacc-api_JDK4 1.1.0
~ *****************************************************************************
~
~ Some dependencies are still missing.
~
~        _            _ 
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/   
~
~ play! 1.2.x-c40cf37, http://www.playframework.org
~

1 个答案:

答案 0 :(得分:3)

我猜force:true导致两个文件被复制。似乎DependencyManager#install没有考虑被排除的代表。

这似乎可以做你想要的:

 require:                                                                                                                                                                                       
    - org.hibernate -> hibernate-core 3.6.8.Final:                                                                                                                                             
        exclude:                                                                                                                                                                               
          - ant -> ant *                                                                                                                                                                       
    - play:                                                                                                                                                                                    
        exclude:                                                                                                                                                                               
          - org.hibernate -> hibernate-core                                                                                                                                                    
    - org.apache.ant -> ant 1.8.2