2012-06-21 91 views
4

我想基於幾個文件的存在來激活配置文件。在下面的示例中,如果存在my.markeranother.marker這兩個文件,我希望激活配置文件。基於幾個文件存在的maven配置文件激活

<activation> 
     <file> 
      <exists>${basedir}/my.marker</exists> 
      <exists>${basedir}/another.marker</exists> 
     </file> 
    </activation> 

它不起作用,因爲它對模式無效。有沒有辦法做到這樣的事情,而不使用命令行屬性?

回答

0

不幸的是,你現在不能這樣做。有一個ticket可以通過使用多個激活條件來解決您的情況,但它仍然沒有解決。

編輯:有一個與Maven的問題,所以你不能這樣做。但是現在,從3.2.2版本開始,它應該使用多個激活條件。

感謝Nicholas Daley指出了這一點。

+1

看起來是固定的Maven V3.2.2 –

0

雖然不是解決問題的辦法,但只有在使用maven enforcer plugin存在兩個文件時,才能確保配置文件成功運行。

例如,下面的代碼段將用於與輪廓requiresTwoFiles(例如mvn -P requiresTwoFiles compile)任何行家目標運行失敗,除非兩者src/main/javasrc/test/java存在。

... 
<profile> 
    <id>requiresTwoFiles</id>   
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-enforcer-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
         <execution> 
         <id>enforce-files-exist</id> 
         <goals> 
          <goal>enforce</goal> 
         </goals> 
         <configuration> 
          <rules> 
          <requireFilesExist> 
           <files> 
            <file>${basedir}/src/main/java</file> 
            <file>${basedir}/src/test/java</file> 
           </files> 
          </requireFilesExist> 
          </rules>        
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 
... 
相關問題