/ / Maven профіль з різними файлами конфігурації - maven, maven-2, maven-3

Maven профіль з різними файлами конфігурації - maven, maven-2, maven-3

моя структура проекту виглядає так

-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

Данні відповіді будуть працювати, але я зробив цей шлях

  1. помістивши підпапки в папку під назвою 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 за замовчуванням намагається скопіювати все з папки / ресурсу в банку.

але за допомогою плагіна банку я можу отримати те, що хочу, але я намагаюся зберегти мій пом просто

головною проблемою, з якою я зіштовхнувся, є як виключити файли з папки / ресурсу. будь ласка, прокоментуйте, чи хтось знає, що це зробити краще