2014-09-30 97 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> 

我把我的个人资料如下: MVN包-Pcopy

但轮廓总是被调用,不管该文件存在与否。 我在做什么错?

谢谢 罗曼。

+0

以下[@ manouti's answer](http://stackoverflow.com/a/26128586/1744774)内部化思考_activating profile_而不是调用或执行它是有利的。这种匹配更好地说明了POM的_declarative_而非强制性的性质。也许你已经意识到它已经通过POM激活了。 ;-) – 2014-09-30 21:59:35

回答

3

如果文件存在于项目中,则在运行mvn命令时无需传递配置文件名称。显式传递-Pcopy将覆盖POM中的activation,并且将始终激活此配置文件。

查看部分如何在link中触发配置文件

+0

非常感谢。我错过了个人资料。 – Tomar99 2014-10-01 07:56:14

相关问题