Почему Maven использует тестовые ресурсы в производственной сборке? - PullRequest
2 голосов
/ 26 августа 2011

В проекте maven у меня есть несколько модулей, у которых есть только файл persitence.xml для юнит-тестов в

src/test/resources/META-INF/persistence.xml

Если я собираю проект с помощью 'package', файл persistence.xml (unit-test) копируется в файл jar.

Предполагается, что созданный артефакт (jar) не имеет никакого файла persistence.xml, поскольку он уже содержится в файле war, который включает несколько модулей.

Poms очень маленькие и не имеют настроенных плагинов, все должно быть по умолчанию.

  • Что я делаю не так?
  • Есть ли доступная документация, объясняющая этот эффект?

1 Ответ

1 голос
/ 26 августа 2011

Когда вы запускаете Maven с флагом отладки, т. Е. mvn -X ... видите ли вы какие-либо сообщения, указывающие, что файлы из src/test копируются? Если это так, вы можете проверить цель Maven, которая выполняет это действие.

Также вы можете проверить содержимое каталогов target/classes и target/test-classes проекта / модуля после сборки Maven. Предполагая, что модуль имеет упаковку jar, maven-jar-plugin просто выбирает содержимое выходного каталога проекта, то есть target/classes или ${project.build.outputDirectory}, при этом тщательно избегая тестового выходного каталога проекта, то есть target/test-classes или ${project.build.testOutputDirectory}. Это также должно быть видно из вывода mvn -X ....

Наконец, вы можете проверить содержимое вашего локального репозитория Maven на предмет созданного файла JAR. Может случиться так, что ваш maven-war-plugin используется для создания файла WAR, возможно, он выбирает более старую и неправильную версию JAR, в которой есть сохраняемый тест, из локального хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...