моя структура проекту виглядає так
-src/main/java
-src/main/resources
-dev
-app.properties
-prod
-app.properties
-sandbox
-app.properties
і я визначив Maven профілі подобається це
<profiles>
<profile>
<id>dev</id>
<properties>
<build.profile>dev</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/dev</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile>prod</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/prod</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>sandbox</id>
<properties>
<build.profile>sandbox</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/sandbox</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
що я намагаюся зробити це копіювати потрібну властивість з правої підпапці, коли я запускаю потрібний профіль, наприклад mvn-pdev встановити. дозволить мантію скопіювати app.properties файл з src / main / resource / dev папку потім помістіть у банку, я будую
мій глечик виглядає так:
+dev
+prod
+sandbox
+META-INF
+com
-app.properties
проблема полягає в тому, 5 папок із єдиним файлом властивостей, я не хочу пакунків з пісочницею.
Відповіді:
1 для відповіді № 1Можливо, у вас є плагін, який не дотримується записів ресурсів у розділі збірки та використовує src / main / resources як папку ресурсів. У такому разі я б змінював структуру папок таким чином:
src
- main
- resources-dev
- resources-prod
- resources-sandbox
і змініть назви папок у розділах збірки. Таким чином, ви не перешкодите стандартній структурі папки Maven.
0 для відповіді № 2
Данні відповіді будуть працювати, але я зробив цей шлях
помістивши підпапки в папку під назвою src / main / profiles, якщо ви використовуєте eclipse, важливо додати цю папку як "папку джерела". так що проект виглядає так
-src / main / resource
-src / main / profiles
-prod -dev -ist
Примітка: ви можете поставити все, що є загальним, і ніколи не змінювати всі профілі в папку ресурсів і т. Д. Log4j.properties а потім додайте конкретні профілі в кожну підпапку відповідно.
і остаточний розділ профілю виглядає так
<profiles>
<profile>
<id>dev</id>
<properties>
<build.profile>dev</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/dev</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile>prod</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/prod</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>sandbox</id>
<properties>
<build.profile>sandbox</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/sandbox</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
Причина, яку я зробив таким чином, полягає в тому, що Maven за замовчуванням намагається скопіювати все з папки / ресурсу в банку.
але за допомогою плагіна банку я можу отримати те, що хочу, але я намагаюся зберегти мій пом просто
головною проблемою, з якою я зіштовхнувся, є як виключити файли з папки / ресурсу. будь ласка, прокоментуйте, чи хтось знає, що це зробити краще