2014-05-05 4 views
0

Я, конечно, борюсь за неправильное использование композитора.Добавление зависимостей от одного файла, без composer.json

Я создал этот репозиторий: https://github.com/alle/assets-merger

Я раздвоенный проект и просто пытался сделать его kohana-module, в том числе всех зависимостей.

Для этого понадобится JAR-модуль YUI comporess JAR, я пытался сделать только JAR-файл как зависимость, и я закончил объявлять его в файле composer.json (пожалуйста, look at this).

После того, как мне нужно, чтобы добавить свой новый пакет в проекте я добавить его в разделе require следующим образом:

... 
"alle/assets-merger": "dev-master", 
... 

Но (последняя) composer update команда говорит:

Loading composer repositories with package information 
Updating dependencies (including require-dev) 
Your requirements could not be resolved to an installable set of packages. 

Problem 1 
- Installation request for alle/assets-merger dev-develop -> satisfiable by alle/assets-merger[dev-develop]. 
- alle/assets-merger dev-develop requires yui/yuicompressor 2.4.8 -> no matching package found. 

Potential causes: 
- A typo in the package name 
- The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details. 

И мой история заканчивается здесь.

Как мне настроить composer.json в репозитории https://github.com/alle/assets-merger, чтобы включить его в качестве полностью удовлетворенного kohana-module в других проектах?

ответ

0

Некоторые вещи, которые я замечаю в вашем composer.json.

  1. Существует версия, что CSS Минимизировать доступны на Packagist, который говорит, что это просто копия оригинального Гул-Code принимал файлы, но с Composer: natxet/cssmin. Это версия 3.0.2, но я думаю, что это не должно меняться.

  2. mrclay/minify прилагается дважды в упаковках с той же версией. Он также доступен по адресу Packagist. Вероятно, вы уже используете это (версия 2.2.0 зарегистрирована, и поскольку вы не включили доступ к пакету Packagist, она будет доступна для установки, если только это не потребует требования к версии или конфликта).

  3. Вы пытаетесь загрузить JAR-файл (который представляет собой исполняемый файл java без и PHP), но попытайтесь извлечь из него классы классов PHP. Это точно не удастся.

  4. Вы пропустили большую заметку в документации к Composer, в которой говорится, что Composer не может разрешать репозитории, упомянутые в подпакетах, только в корневом пакете. Это означает, что все, что вы упоминаете в своем alle/asset-merger, не будет использоваться, если вы используете этот пакет в другом месте. Вам придется дублировать эти репозитории в каждом пакете в дополнение к добавлению самого имени пакета как «обязательного».

Что это означает, что вы, вероятно, избежать отсутствует mrclay/преуменьшать, так как он доступен на Packagist, вы можете также добавили cssmin случайно, но вы определенно не добавить YUICompressor.

Но вы не должны добавлять это, в первую очередь, потому что это не программное обеспечение PHP. Однако вы можете добавлять команды post-install в свои проекты. Вся ваша интеграция с Composer - это загрузка файла JAR. Вы можете сделать это с помощью команды post-install или post-update. См. Здесь documentation.

+0

Несмотря на то, что это был первый день недели, вчера, наверное, я уже достаточно устал, чтобы совершить все эти ошибки! Я даже не видел композитора.json в этих пакетах. Ooops ... @ Свен, ты сделал мой день! И да, я пропустил эту большую заметку. Спасибо вам большое за ваше время. – alle

Смежные вопросы