我正在尝试在本地文件夹中指定自定义依赖项,而我的 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文件的文件大小比原件小得多。
有什么想法在这里发生了什么?我已经能够通过手动复制罐子来解决它,但我不知道为什么某些组的罐子之间存在这种不一致。
答案 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不会检查您配置的存储库中的较新版本。