2014-10-29 3 views
0

Я только что выпустил свой первый проект родительского модуля с maven и успешно установил его. Могу ли я добавить этот проект в зависимость от другого проекта, только обратившись к родительскому? Моя среда Eclipse IDE жалуется, что не может найти родителя .jar, но это не удивительно, поскольку он упакован как parent .pom.Могу ли я добавить зависимости maven, которые упакованы как что-либо, кроме .jar?

Вопрос: Так же можно добавить родительский (.pom) зависимость, и получить все транзитивные зависимости бесплатно, или я должен добавить .jar-х.

Бонус Вопрос: Можно ли добавить зависимости к другим форматам упаковки, например, войну? Я не могу понять, как это будет работать, или почему мне это нужно в этот момент. Просто любопытно.

Отказ от ответственности: Я все еще изучаю maven и нахожу философию и теорию ее великой. Тем не менее, есть так много ям и рифов, которые, кажется, появляются, и не раз я изо всех сил пытаюсь понять, пытаюсь ли я сделать что-то невозможное, или если есть другая ошибка в конфигурациях I.E. Сейчас Eclipse говорит, что он не может найти какие-либо из моих зависимых ссылок .m2 в этом конкретном проекте. Я понятия не имею, почему, поскольку другие проекты работают нормально. Я, другими словами, пытаюсь найти ошибку, проверив одну область в то время ...

ответ

2

Да, вы можете добавить различные типы, такие как pom, test-jar и т. Д. Jar просто по умолчанию

Bonus Ответ: Да, вы можете указать тип войны, а

The Maven-Guide определяет следующие типы: «Текущие значения основной упаковки являются: POM, банки, Maven -plugin, ejb, war, ear, rar, par. "

Вот пример того, как включал РОМ:

<dependencies> 
    <dependency> 
    <groupId>com.my</groupId> 
    <artifactId>comm-group</artifactId> 
    <type>pom</type> 
    </dependency> 
</dependencies> 

Это (П из комм-группы) является часто используемым для группировки определенных зависимостей и включает в себя все из них с использованием типа-POM.

Дополнительную информацию о группировании: http://blog.sonatype.com/2009/10/maven-tips-and-tricks-grouping-dependencies/#.VFC7LR_JY8c Обратите внимание на то, что вы можете создавать похожие методы, используя полиморфизм.

У меня были проблемы с maven, когда мы перешли из Ant, и у меня все еще есть определенные проблемы (например, было преимуществом maven, если 80% наших SWE применяют неправильные области, типы и т. Д., Что приводит к огромному недостатку если им просто нужно добавить фрикционную банку, а также к рефакторингам, ведущим «maven gurus»).

НО: Я могу гарантировать, что если вы пройдете полностью http://maven.apache.org/pom.html, вы сможете получить результаты по сравнению с ANT с течением времени.

Обновление: Я просто столкнулся с тем случаем, когда мой pom не мог быть включен на удаленный сервер сборки, пока он работал, строя его из Intellij Idea/Eclipse. Определение типа в моем случае должно быть строчным (например, «pom» вместо «POM»).

+0

Это действительно отличный ответ.Я даже попытался установить спецификацию . Я прочитал большинство спецификаций, но все это сложно запомнить, прежде чем использовать их практическое применение :). Это означает, что мои интуиции правильные, чтобы добавить только родителя, а не все транзакционные зависимости, и что моя ошибка действительно происходит откуда-то еще :) Я уверен, что maven будет стоить того времени, потраченного на изучение этого! Спасибо :) – KjetilNordin

+0

@KjetilNordin Приветствуем вас! :) (Я знаю это чувство, когда дело доходит до спецификации ... Я в настоящее время реорганизую архитектуру maven примерно из 15 приложений с 10 + модулями каждый ... в первый раз спецификация имеет реальное использование для меня) – JBA