2009-07-13 3 views
0

я определил следующий профиль в pom.xml:Невозможно получить Maven2 профили работать

<profiles> 
    <profile> 
     <id>dev</id> 
     <build> 
     <plugins> 
      <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
       <phase>dev</phase> 
       <goals> 
        <goal>run</goal> 
       </goals> 
       <configuration> 
        <tasks> 
        <delete file="src/main/application/META-INF/data-sources.xml"/> 
        <copy file="src/main/resources/data-sources-dev.xml" tofile="src/main/application/META-INF/data-sources.xml"/> 
        </tasks> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
      <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>true</skip> 
      </configuration> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 

Вопросы, в том, что это не похоже на работу!

mvn help:effective-pom -P dev 

Есть ли эхо и профиль.

Однако, если я

mvn -X -Pdev install 

удалять/копировать часть не видна в логах.

+0

Возможно, вы имели в виду pom2.xml, или pom.xml? –

+0

Упс, pom.xml. Ред. – tputkonen

ответ

3

Там нет phase с именем dev. Укажите correct phase.

+0

Это профиль, а не фаза, определяя -Pdev, Maven будет объединять содержимое профиля с остальным конфигурации. –

+0

Извините, просто перечитайте и поняли, что вы имеете в виду –

1

Я только что скопировал вашу конфигурацию в базовый pom, и все работает отлично. Вы уверены, что он не отображается в конфиге, а также в профиле? Если вы перенаправите вывод в файл и выполните поиск «antrun», я подозреваю, что вы увидите, что он объявлен в разделе сборки эффективного pom.

Ваша конфигурация плагина Antrun должна быть привязана к действительной фазе для ее типа упаковки до того, как она будет выполнена. Если вы хотите, чтобы содержимое было доступно в банке (при условии упаковки контейнера), это должно быть до фазы упаковки. Я бы предложил процессуальные ресурсы.

Меняем:

<phase>dev</phase> 

к:

<phase>process-resources</phase> 
+0

Что вы имеете в виду при появлении в конфиге? antrun не отображается в журналах, созданных -X. – tputkonen

+0

Конфигурация плагина должна отображаться в разделе сборки эффективного POM как результат с помощью справки: effective-pom. Как ответ Аарона говорит, что вам нужно определить действительную фазу для выполнения цели (например, * process-resources *) –

Смежные вопросы