Play Framework 1.2.4:在“play dependencies”命令上修改自定义jar

时间:2012-03-30 00:09:32

标签: playframework dependency-management

我正在尝试在本地文件夹中指定自定义依赖项,而我的 dependencies.yml 文件如下所示:

require:
   - play
   - my.group -> module-1 0.0.1
   - my.group -> module-2 0.0.1-SNAPSHOT
   - my.other.group -> module-1 1.0-alpha
   - my.other.group -> module-2 1.2.0

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

我有两个问题:

1:组合ID与我的Play模块匹配的罐子不会被复制。运行play deps --verbose表示找到了它们(found my.group#module-1;0.0.1 in jars in [default]),但“安装已解决的依赖项”部分添加了一条与其他路径不同的奇怪路径。虽然其他组ID的jar列为lib/module-2-1.2.0.jar,但我模块中的jar显示为modules/lib -> <path/to/play/proj>/lib。因此,尽管看起来成功执行了依赖项解析,但这些特定的jar文件不会被复制。

如果我将 dependencies.yml 更改为以下格式:

require:
   - play
   - my.group.module-1 -> module-1 0.0.1
   - my.group.module-2 -> module-2 0.0.1-SNAPSHOT
   - my.other.group -> module-1 1.0-alpha
   - my.other.group -> module-2 1.2.0

repositories:
   - jars:
      type:     local
      artifact: "${application.path}/jars/[module]-[revision].jar"
      contains:
         - my.group.module-1 -> *
         - my.group.module-2 -> *
         - my.other.group -> *

我在“包含”部分的声明中包含模块名称,然后成功复制了jar。这导致了我的第二个问题:

2:当我运行play deps时,似乎我的罐子在被复制时被修改,或者它们被从一些较旧的缓存版本中拉下来。我在运行程序时遇到了不一致的行为,就像使用旧代码一样。我在lib和jars文件夹上做了ls -al进行比较,并且复制的jar文件的文件大小比原件小得多。

有什么想法在这里发生了什么?我已经能够通过手动复制罐子来解决它,但我不知道为什么某些组的罐子之间存在这种不一致。

2 个答案:

答案 0 :(得分:0)

有点晚了,但问题已经解决了吗?这是我的deps文件。适合我:

需要:
     - 游戏 - &gt;玩1.2.4
     - 提供 - &gt; joda-time 2.0

库:
     - 提供:
       类型:本地
       descriptor:“$ {play.path} / [module] /conf/dependencies.yml”
       工件:“$ {play.path} / jar / [module] - [revision] .jar”
       包含:
          - 提供 - &gt; *

答案 1 :(得分:0)

使用此命令可以解决您的问题:

play dependecies --clearcache

--clearcache清空常春藤缓存。如果不清除缓存,则play不会检查您配置的存储库中的较新版本。