2014-09-30 3 views
1

Я использую активацию на основе файла в моем pom.xml.Активация в моем профиле maven игнорируется (профиль всегда выполняется) с использованием файла существует

Однако мой профиль ВСЕГДА выполнен, несмотря ни на что.

Вот описание профиля:

<profile> 
    <id>copy</id> 
    <activation> 
     <file> 
      <exists>file.xml</exists> 
     </file> 
    </activation> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.7</version> 
       <executions> 
        <execution> 
         <id>copy-resources</id> 
         <phase>validate</phase> 
         <configuration> 
          <target name="copy and rename file"> 
           <copy   file="${basedir}/src/main/resources/application.${env}.properties" tofile="${basedir}/src/main/fabric8/io.fabric8.system.properties" /> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

Я называю мой профиль, как это: МВН пакет -Pcopy

Но профиль всегда вызывается, независимо от того, если файл присутствует или нет. Что я делаю неправильно?

Thanks Romain.

+0

После ответа [@ manouti] (http://stackoverflow.com/a/26128586/1744774) полезно интернализировать, чтобы думать о _activating profile_, а не о вызове или выполнении его. Такое совпадение улучшает _declarative_, а не императивный характер POM. Возможно, вы поняли, что он уже активирован через POM. ;-) –

ответ

3

Вам не нужно передавать имя профиля при запуске команды mvn, если файл существует в проекте. Передача -Pcopy явно в команду будет переопределять activation в POM и всегда будет активировать этот профиль.

См. Раздел Как можно активировать профиль в этом link.

+0

Большое спасибо. Я пропустил профили. – Tomar99