В Maven2 есть ли способ установить зависимость «только для пакета» и оставить ее вне тестового пути к классам? - PullRequest
2 голосов
/ 14 декабря 2009

Настройка Я упаковываю WAR с несколькими устаревшими jar-зависимостями (ради простоты они не могут быть изменены или исключены из развернутой WAR).

Номер Включение одного или обоих из этих двух jar приведет к неумолимым ошибкам во время теста. Если я полностью исключу зависимости, тесты пройдут успешно, но WAR будет не хватать реальных классов времени выполнения, в которых она нуждается.

Hope Maven2 предлагает области компиляции, тестирования, выполнения, системы и предоставляемые области. К сожалению, ни один из них не будет включен в сборку, но будет исключен из пути к классу теста . Я надеюсь, что мне не хватает какого-то очевидного способа полностью разобраться с этим делом в функции управления зависимостями.

Страх Я должен использовать плагин сборки, чтобы скопировать эти проблемные фляги в цель. Я не хочу обходить систему управления зависимостями, чтобы копировать баночки в открытом виде в цель, поскольку я не хочу управлять этими банками вне внутреннего репозитория.

Мысли? Альтернативы?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2009

Конечно, это показывает, что я столкнулся с потенциальным решением этих моментов после публикации вопроса. Похоже, что цель копирования плагина зависимостей может справиться с этим. Попробуем это сейчас: http://maven.apache.org/plugins/maven-dependency-plugin/usage.html

Редактировать: Оказывается, это работало нормально для моих нужд, фрагмент ниже:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>copy</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <artifactItems>
            <artifactItem>
                <groupId>group</groupId>
                <artifactId>artifact</artifactId>
                <version>version</version>
                <type>jar</type>
                <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
            </artifactItem>
        </artifactItems>
    </configuration>
</plugin>
0 голосов
/ 15 декабря 2009

Разбейте тестовые классы из файла jar на отдельный jar, который предназначен только для тестов, и добавьте исключение в зависимость от jar с унаследованными зависимостями.

...