мавен прицел для тканых артефактов - PullRequest
2 голосов
/ 24 января 2012

У меня есть проект foo-instrumented, который зависит от foo.

Этот проект фактически вводит foo с дополнительным кодом и заменяет его.То есть foo - это зависимость во время компиляции foo-instrumented, но это определенно не зависимость во время выполнения (foo-instrumented заменяет foo), и она не должна передаваться дочерним элементам (чтоесть проекты, зависящие от foo-instrumented, должны , а не в конечном итоге зависеть от foo).

Существует ли подходящая область maven для такой зависимости или другого решения?

Редактировать : Я не достаточно ясен с моим запросом: хотя foo не должно заканчиваться зависимостями дочернего проекта, должны foo (например, если foo зависит отlog4j, тогда проект, который зависит от foo-instrumented, должен иметь log4j как часть его зависимостей), что, похоже, исключает область действия provided.

Спасибо!

Редактировать : Ладно, мне нужна небольшая напыщенная речь: ДЕЙСТВИТЕЛЬНО ЛИ ЧЕЛОВЕК НАСТОЯЩИМ ПОНИМАЛ МАВЕНСКИЕ ДОКУСЫ?Я взглянул на несколько страниц и угадаю, что: без объяснений, без иллюстраций, просто тонны XML-рвоты.XML VOMIT НЕ ДОКУМЕНТАЦИЯ, ЛЮДИ!

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Вы должны использовать область действия import .В вашем проекте с инструментарием foo:

<dependencies>
    <dependency>
        <groupId>bar</groupId>
        <artifactId>foo</artifactId>
        <type>pom</type>
        <scope>import</scope>
    <dependency>
<dependencies>

Это приведет к зависимости foo от инструментария foo без включения также foo.

1 голос
/ 24 января 2012

Вы не можете исключить зависимость, но все равно включите ее зависимости. Тем не менее, вы можете определить исключение для вашей неинструментированной зависимости и добавить зависимости к другому модулю (снова). Когда вы определите зависимость для foo-instrumented, выполните:

<dependencies>
    <dependency>
        <groupId>bar</groupId>
        <artifactId>foo-instrumented</artifactId>
        <exclusions>
            <exclusion>
                <groupId>bar</groupId>
                <!-- Exclude the non-instrumented dependency: -->
                <artifactId>foo</artifactId>
            </exclusion>
        </exclusions>
    <dependency>

   <!-- Add the dependencies you need for foo to work here -->
<dependencies>
...