Установка и развертывание maven test-jar

Я обнаружил замечательное средство test-jar в Maven: https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html

Но может случиться так, что одному проекту потребуется использовать тестовую банку другого проекта. Из https://stackoverflow.com/a/6469256/421049 и экспериментов может показаться, что использование mvn install не устанавливает тестовую банку в локальный ~/.m2/repository. Итак, как один проект на моей машине использует тестовые банки другого проекта, не в том же агрегированном POM?

Тем не менее, из Maven deploy не загружать тестовый jar может показаться, что развертывание проекта в Maven Central фактически развертывает тест -банка? То есть я могу развернуть его на Nexus, но не установить локально? И если я разверну его на Nexus, найдет ли мой локальный проект, использующий зависимость <type>test-jar</type>, его на Maven Central?


person Garret Wilson    schedule 25.10.2017    source источник
comment
Я не уверен, что привело вас к выводу, что тестовая банка не установлена ​​и не загружена в удаленный репозиторий? Кроме того, описание ссылки для Maven deploy not to upload test jar было предназначено для предотвращения загрузки тестовой банки в удаленный репозиторий... в зависимости от размера полученной банки... что-то другое...   -  person khmarbaise    schedule 26.10.2017
comment
Чтобы получить дополнительную помощь, сначала опубликуйте свой pom.xml.   -  person carlspring    schedule 26.10.2017
comment
Я не уверен, что привело вас к выводу, что тестовая банка не установлена... Я открыл свое дерево каталогов ~/.m2/repository и не увидел тестовых банок. Но я только что проверил еще раз, и они там, поэтому, возможно, я искал не в том каталоге в первый раз. (У меня есть несколько проектов с похожими названиями.)   -  person Garret Wilson    schedule 27.10.2017
comment
...и не загружены в удаленный репозиторий? На самом деле мой вопрос указывает на то, что я понял, что он загружается в удаленный репозиторий, отсюда и мое замешательство по поводу очевидного несоответствия.   -  person Garret Wilson    schedule 27.10.2017
comment
Вы имеете в виду несоответствие между разными постами?   -  person khmarbaise    schedule 27.10.2017
comment
Нет, меня смутило очевидное несоответствие того, что Maven не устанавливает тестовую банку, но все же развертывает ее на Nexus. Как я заметил в другом комментарии, возможно, это была моя ошибка; если Maven действительно устанавливает тестовую банку в локальный репозиторий, а Maven также развертывает тестовую банку в Nexus, расхождений нет.   -  person Garret Wilson    schedule 27.10.2017
comment
Ладно, теперь я запутался больше, чем когда-либо. Каким-то образом у меня была тестовая банка в моем локальном репозитории Maven. Но у моего коллеги возникли проблемы со сборкой, поэтому я удалил тестовую банку из локального репозитория. Теперь мой проект Maven больше не будет собираться, и даже запуск mvn install для проекта не сохранит тестовую банку в моем локальном репозитории. буду разбираться дальше...   -  person Garret Wilson    schedule 28.10.2017
comment
Хахаха! Я нашел источник проблемы, который все объясняет. Смотрите мой отдельный ответ.   -  person Garret Wilson    schedule 28.10.2017
comment
И да, @carlspring, ты прав: если бы я опубликовал весь pom.xml, это помогло бы. :)   -  person Garret Wilson    schedule 28.10.2017


Ответы (2)


Оказывается, maven-jar-plugin действительно устанавливает тестовую банку (например, foo-1.2.3-tests.jar) в локальном репозитории Maven ~/.m2/repository/.... Чудесно!

Моя проблема в том, что я непреднамеренно настроил maven-jar-plugin в отдельном профиле с именем release. (Я скопировал и вставил в неправильное место в моем POM.) Вот почему test-jar не появился в моем локальном репозитории после mvn install, и вот почему он внезапно появился позже (после того, как я использовал -P release однажды в тестировании ), и я думал, что просто пропустил это, когда я смотрел в первый раз.

Я перемещаю maven-jar-plugin в раздел <build>, и все работает нормально: тестовая банка помещается в локальный репозиторий maven с помощью mvn install.

person Garret Wilson    schedule 27.10.2017

В моем случае я устанавливал maven.test.skip для определенного профиля сборки. Это свойство фактически приводит к тому, что тесты не компилируются/устанавливаются, что также предотвращает их развертывание. Решение состояло в том, чтобы вместо этого установить свойство skipTests.

person Matthew Read    schedule 29.06.2021