2011-12-22 51 views
1

是否可以向指向目录的dependencies.yml添加依赖项?Play Framework:添加指向本地jar文件目录的依赖关系

例如,使用伪阳明的dependencies.yml,我想要做这样的事情:

require: 
    - mycooldirectory 

repositories: 
    - mycooldirectory: 
     type: local 
     artifact: "${application.path}/jars/mycooldirectory/*.jar" 
     contains: 
      - mycooldirectory -> * 

在我虚构的世界,上面将包括mycooldirectory作为类路径文件夹,使用该目录中找到的任何罐子。

我只是在做东西,但我希望这种解释我想做的事情。我知道你可以将jar放在/ lib目录中,但是在执行play dependencies --sync时,依赖项.yml未指定的任何jar将被擦除。我也知道你可以通过做this指定单个罐子。然而,我只是想知道你是否可以做类似的事情,但引用一个完整的罐子目录?

编辑:我有一种解决方法是通过为mycooldirectory创建一个Play模块结构(即在该目录下有一个lib目录)并将所有jar放在该lib目录中。然后在dependencies.yml,这样做:

require: 
    - mycooldirectory -> mycooldirectory 

repositories: 
    - provided:  
     type:  local 
     artifact: "${application.path}/jars/[module]" 
     contains: 
     - mycooldirectory 

虽然我不知道是否有这样做,而不必做出假装模块的更清洁的方式,只是引用一个新的目录有额外的罐子。

回答

2

此解决方法与您的解决方法类似,但它应该在没有/lib目录的情况下运行。我还没有测试过它,但它已经在邮件列表中,并得到了积极的反馈。

require: 
    - play 
    - play -> googleclosure 1.2 
    - provided -> mylib 1.0 

repositories: 
    - provided: 
     type:  local 
     artifact: "${application.path}/jar/[module]-[revision].jar" 
     contains: 
     - provided -> * 

邮件列表线程:https://groups.google.com/forum/#!topic/play-framework/tU5OJa5JFhs/discussion

+0

是的,我已经看到,但据我所知,这只是指一个罐子在时间(而不是一个完整的罐子的目录)。纠正我,如果我错了,但不是上面只是从“jar”目录中说“我想包括jar mylib-1.0.jar”作为依赖吗?“而我想说”添加所有罐子某些目录无需逐一指定jar“ – digiarnie 2011-12-22 23:01:32

+0

你是对的'' - provided - > mylib 1.0'只添加一个jar文件,但你可以更频繁地使用该行,但我猜这不是你想要的。例如' - provided - > * *'。否则,请尝试将您的问题发布到邮件列表中。 – 2011-12-22 23:45:43

+0

也许很明显,但我想指出'provided'可以是任何您想要的(例如您的组织名称)。另外,如果你有一个“1.0-SNAPSHOT”版本或者其他的东西,请在“require”部分放弃“-SNAPSHOT”部分,否则Play会发出抱怨。 – 2013-03-26 19:06:45

相关问题