2011-06-10 49 views
1

我有一种情况,我需要放置来自不同第三方来源的lib文件夹下的非常大量的罐子,并且应该可以工作。但是如果我可以在project_root/lib文件夹下创建子文件夹来组织和分组属于不同第三方源的不同罐子,那将会好得多。这使得在新版本的第三方项目出现时更容易管理和更新罐子。这是可能的吗?我该怎么做?在哪里把相关的罐子放在它自己的文件夹中,在播放框架项目?

回答

3

自从开始使用Play以来,我尽量不使用lib文件夹作为jar! 1.2它有它自己的依赖管理,使用该文件夹解决依赖关系。所以,我所做的就是创建一个名为'jar'的文件夹并将它们放在那里。然后,您可以按照组织名称在该文件夹下安排罐子。

所以,如果你把一个罐子在“罐子/ my.org /我的模块-1.2.jar”你需要这在dependencies.yml文件:

require: 
    - play 
    - my.org -> my-module 1.2 

repositories: 
    - local: 
    type:  local 
    artifact: "${application.path}/jars/[organisation]/[artifact]-[revision].[ext]" 
    contains: 
     - my.org -> * 

您必须列出每个org在'contains:'下,你想从jar文件夹中解析出来。

+0

伟大的提示,亚伦。使用lib文件夹解析依赖关系是什么意思? – opensas 2011-09-17 13:18:07

+1

在Play中运行依赖性任务时! 1.2它将解决项目的所有依赖关系,并将jar放在lib文件夹中。 – Aaron 2012-01-18 17:08:16

1

只是为了让Aaron的答案更多一点。当直接在工件行中引用jar文件时,什么在扰乱我,并不理解可能有多个工件行。 因此,举例来说,我能做到这一点:

require: 
    - play 
    - my.org -> mylib 1.2 
    - my.org2 -> mylib2 1.3 

repositories: 
    - custom-lib: 
    type:  local 
    artifact: "${application.path}/jars/mylib-1.2.jar" 
    artifact: "${application.path}/jars/mylib2-1.3.jar" 

    contains: 
     - my.org -> * 
     - my.org2 -> * 

和运行发挥依赖当它把罐子lib目录中,并表示,他们无论是从自定义的lib库来了。

所以它通过实验似乎对我有用,但我很想知道这是否是一种真正有效的方法,因为我在文档中没有看到任何说明可以有多个工件线的任何东西。

相关问题