2012-01-29 76 views
0

我试图通过配置文件设置条件插件执行。这个想法是有一个压缩/无压缩HTML文件:Maven配置文件未激活,虽然属性的值正确

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>net</groupId> 
    <artifactId>mavenconditionalexecution</artifactId> 
    <version>1.0.0</version> 
    <packaging>jar</packaging> 

    <name>Maven Conditional Execution</name> 

    <properties> 
     <DoCompress>true</DoCompress> 
    </properties> 

    <build> 
     <plugins> 

      <!-- Clean-up --> 
      <plugin> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.6</version> 
       <executions> 
        <execution> 
         <phase>clean</phase> 
         <configuration> 
          <target> 
           <echo message="DoCompress: ${DoCompress}"/> 
           <delete includeemptydirs="true"> 
            <fileset dir="${basedir}/src/main/webapp/result/" includes="**/*"/> 
           </delete> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 

     <resources> 
      <resource> 
      <directory>${basedir}/src/main/webapp/html</directory> 
      </resource> 
     </resources> 

    </build> 

    <profiles> 

     <profile> 
      <id>With Compression</id> 
      <activation> 
       <property> 
        <name>DoCompress</name> 
        <value>true</value> 
       </property> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>com.tunyk.mvn.plugins.htmlcompressor</groupId> 
         <artifactId>htmlcompressor-maven-plugin</artifactId> 
         <version>1.2</version> 
         <executions> 
          <execution> 
           <phase>process-resources</phase> 
           <goals> 
            <goal>html</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          <goalPrefix>htmlcompressor</goalPrefix> 
          <srcFolder>${basedir}/src/main/webapp/html</srcFolder> 
          <targetFolder>${basedir}/src/main/webapp/result/html</targetFolder> 
          <removeIntertagSpaces>true</removeIntertagSpaces> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

     <profile> 
      <id>Without Compression</id> 
      <activation> 
       <property> 
        <name>DoCompress</name> 
        <value>false</value> 
       </property> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <artifactId>maven-antrun-plugin</artifactId> 
         <version>1.6</version> 
         <executions> 
          <execution> 
           <phase>process-resources</phase> 
           <configuration> 
            <target> 
             <echo message="Copying file"/> 
             <copy todir="${basedir}/src/main/webapp/result/"> 
              <fileset dir="${basedir}/src/main/webapp/html/" > 
               <include name="angle.html"/> 
              </fileset> 
             </copy> 
            </target> 
           </configuration> 
           <goals> 
            <goal>run</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 

     </profile> 

    </profiles> 

    <dependencies> 
     <dependency> 
      <groupId>com.tunyk.mvn.plugins.htmlcompressor</groupId> 
      <artifactId>htmlcompressor-maven-plugin</artifactId> 
      <version>1.2</version> 
     </dependency> 
    </dependencies> 

</project> 

不要紧,我分配到DoCompress财产什么样的价值,相应的配置文件不被执行。我用echo检查房产的价值。为什么?我究竟做错了什么?

是否允许使用属性值激活pom.xml中的多个配置文件?

UPDATE

我已经创建了一个事件:我已经创建了一个事件:https://jira.codehaus.org/browse/MNG-5235

如果任何人有一个操作示例的maven配置文件激活属性,我感兴趣。此外,有没有人知道是否可以通过属性在同一运行中激活多个配置文件?文件不清楚。

+0

您是否尝试过使用-X运行maven进行调试?你是否也可以描述如何从命令行运行maven? – Jeroen 2012-01-29 11:40:11

+0

避免在个人资料的ID中使用空格。尝试用'mvn -P WithoutCompression'或'mvn -P DoCompress'来执行Maven。 – 2012-01-29 13:40:53

+0

[通过属性激活Maven多项目配置文件]的副本(http://stackoverflow.com/a/8985198/267197),[如何通过maven属性激活配置文件](http://stackoverflow.com/a/5676534/267197)和[MNG-5055](http://jira.codehaus.org/browse/MNG-5055)(请为此错误投票)。 – 2012-01-29 18:24:46

回答

2

打开issue后,事实证明这不是一个错误,因为该部分中的属性只能是系统属性,而不是pom.xml本身中定义的属性。

相关问题