Play Framework 1.2.4: пользовательские банки, измененные по команде «play зависимости» - PullRequest
2 голосов
/ 30 марта 2012

Я пытаюсь указать пользовательские зависимости в локальной папке, и мой файл 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: Банки с идентификатором группы, совпадающим с идентификатором моего модуля Play, не копируются. Выполнение play deps --verbose показывает, что они были найдены (found my.group#module-1;0.0.1 in jars in [default]), но раздел «Установка разрешенных зависимостей» добавляет странный путь, который отличается от других. В то время как банки из идентификаторов других групп указаны как lib/module-2-1.2.0.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, кажется, что мои банки либо модифицируются при копировании, либо их извлекают из какой-то более старой кэшированной версии. Я получал противоречивое поведение при запуске моей программы, как будто использовался старый код. Я сделал ls -al для папок lib и jars для сравнения, а размер файла на скопированных банках намного меньше, чем на оригиналах.

Есть идеи, что здесь происходит? Мне удалось обойти это путем ручного копирования jar-файлов, но я понятия не имею, почему существует такое несоответствие между jar-файлами из определенных групп.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2012

Ваша проблема может быть решена с помощью этой команды:

play dependecies --clearcache

--clearcache очищает кеш Ivy. Если вы не очистите кеш, play не будет проверять наличие новых версий в настроенном вами хранилище.

0 голосов
/ 25 апреля 2012

Немного поздно, но проблема была решена? Это мой файл. У меня работает:

требуется:
- играть -> играть 1.2.4
- при условии -> йода-время 2,0

репозитории:
- при условии:
тип: местный
дескриптор: "$ {play.path} / [module] /conf/dependencies.yml"
Артефакт: "$ {play.path} / jar / [module] - [revision] .jar"
содержит:
- при условии -> *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...