Play Framework:添加一个指向本地jar文件目录的依赖项

Posted

技术标签:

【中文标题】Play Framework:添加一个指向本地jar文件目录的依赖项【英文标题】:Play Framework: Add a dependency that points to a directory of local jar files 【发布时间】:2011-12-22 06:21:34 【问题描述】:

是否可以将依赖项添加到指向目录的dependencies.yml?

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

require:
    - mycooldirectory

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

在我的 make-believe-world 中,上面会将 mycooldirectory 作为类路径文件夹包含在内,并使用在该目录中找到的任何 jar。

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

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

require:
    - mycooldirectory -> mycooldirectory

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

虽然我想知道是否有一种更简洁的方法可以做到这一点,而无需制作一个假装模块,只需引用一个新目录即可拥有额外的 jar。

【问题讨论】:

【参考方案1】:

此解决方法与您的类似,但它应该可以在没有 /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

【讨论】:

是的,我已经看到了,但据我所知,它一次只指一个罐子(而不是一个装满罐子的目录)。如果我错了,请纠正我,但上面不是说“我想将“jar”目录中的 jar mylib-1.0.jar 包含为依赖项吗?”而我想说“从一些目录,而不必一一指定jar” 你是对的。 - provided -> mylib 1.0 只添加了一个 jar,但您可以更频繁地使用该行,但我想这不是您想要的。您是否尝试过类似- provided -> * * 的方法。否则,请尝试将您的问题发布到邮件列表。 也许很明显,但我想指出provided 可以是您想要的任何名称(例如,您的组织名称)。此外,如果您有“1.0-SNAPSHOT”版本或其他版本,请不要在require 部分中添加“-SNAPSHOT”部分,否则 Play 会抱怨。

以上是关于Play Framework:添加一个指向本地jar文件目录的依赖项的主要内容,如果未能解决你的问题,请参考以下文章

heroku 部署与 play framework 1.2.4 和自己的安全模块

如何使用 Jenkins 在本地自动部署 Play Framework (2.4) 应用程序?

Play Framework -- 将新目录添加到类路径

在 Play Framework 1.3 上手动运行作业

尝试添加 MySQL / slick 后出现奇怪的 Play Framework 2.2 异常

在 Heroku 托管的 Play Framework 2 应用程序上通过 Mandrill 对电子邮件进行错误的内容传输编码。在本地工作