Если я запускаю пакет mvn clean, я обнаружил, что этот файл не скопирован в файл war в целевой папке.
Тогда файлы сопоставления, вероятно, не находятся в каталоге ресурсов по умолчанию(src/main/resources
), но в исходном каталоге (src/main/java
) и Maven не будет копировать их в выходной каталог сборки по умолчанию.
Тем не менее, если я выполню только mvn clean, а затем перейдучтобы затмить и выбрать «Очистить» в меню «Проект», файл будет отправлен в нужное место цели.Затем я могу сделать mvn package, чтобы успешно упаковать военный файл, который имеет доступ к базе данных.
В Eclipse я предполагаю, что файлы из исходных каталогов копируются в выходной каталог сборки, включая ресурс приложенияфайлы.Так что это как-то "обманывает" Maven, когда вы запускаете package
после шага очистки Eclipse.Но это на самом деле не имеет значения, мастер Maven, все остальное не имеет значения.
Чтобы исправить это, либо переместите файлы сопоставления на src/main/resources
.Или сохраните их в src/main/java
и объявите каталог источников как «дополнительный» каталог ресурсов:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
Некоторые люди делают это, я предпочитаю использовать отдельные каталоги.