Определите maven профили вне POM - PullRequest
6 голосов
/ 16 ноября 2011

Есть ли способ определить мои maven профили вне файла POM, но не в .m2 / settings.xml ?
Я хочу определить их в отдельный xml файл внутри приложения (способ эффективной работы с maven 2 и 3), потому что я использую maven 2 и намерен в ближайшее время перейти на 3.

Ответы [ 4 ]

1 голос
/ 31 августа 2016
<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <build.profile.id>dev</build.profile.id>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <build.profile.id>prod</build.profile.id>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <build.profile.id>test</build.profile.id>
        </properties>
    </profile>
</profiles>

И добавить фильтр

<filters>
   <filter>src/test/resources/${build.profile.id}/config.properties</filter>
</filters>

И добавить любой каталог (dev, prod, test)

1 голос
/ 16 ноября 2011

До версии Maven 2.2.1 вы могли определять свои профили в файле profiles.xml как отдельный файл, но в версии Maven 3 эта возможность была удалена. Вопрос в том, зачем вам нужен отдельный файл для профилей?

1 голос
/ 16 ноября 2011

Возможно, вы захотите просмотреть эту maven документацию о профилях сборки, в которой описаны типы профилей и способы их использования.

На мой взгляд, профили не могут быть определены за пределами pom.xml или settings.xml, если вы хотите использовать maven 3.

0 голосов
/ 06 ноября 2015

Я недавно переносил приложение в maven3 из maven2. С Maven 3 нет возможности иметь внешние профили. Но что можно сделать, так это иметь внешние файлы свойств. Это может быть достигнуто с помощью maven-properties-plugin

    <plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>properties-maven-plugin</artifactId>
 <version>1.0-alpha-2</version>
 <executions>
  <!-- Associate the read-project-properties goal with the initialize phase,
   to read the properties file. -->
  <execution>
   <phase>initialize</phase>
   <goals>
    <goal>read-project-properties</goal>
   </goals>
   <configuration>
    <files>
     <file>../com.tak/build.properties</file>
    </files>
   </configuration>
  </execution>
 </executions>
</plugin>

Итак, здесь я объяснил, как это сделать http://programtalk.com/java/migrate-from-maven2x-to-maven3x/

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