2009-07-13 8 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

oops、pom.xml。編集されました。 – tputkonen

答えて

3

名前devとはphaseはありません。 correct phaseを指定してください。

+0

これは-Pdevを定義することによって、フェーズではなくプロファイルです。Mavenはプロファイルの内容を残りのものとマージします構成の –

+0

申し訳ありません、ただ再読し、あなたが意味するものを実現しました –

1

私はちょうどあなたの設定を基本的なpomにコピーペーストしました。うまく動作します。設定だけでなくプロファイルにも表示されないのでしょうか?出力をファイルにリダイレクトして "antrun"を検索すると、有効なpomのビルドセクションで宣言されていることがわかります。

antrunプラグインの設定は、実行前にパッケージ化タイプの有効なフェーズにバインドする必要があります。 jarパッケージでコンテンツを利用できるようにするには、これはパッケージ段階の前でなければなりません。私はプロセスリソースを提案します。

ので変更:

<phase>dev</phase> 

へ:

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

設定に表示されるとどういう意味ですか? antrunは、-Xで生成されたログには表示されません。 – tputkonen

+0

プラグインの設定は、有効なPOMのビルドセクションにhelp:effective-pomの出力として表示されます。 Aaronの答えは、目的を実行するための有効なフェーズを定義する必要があると言います(例えば、* process-resources *) –

関連する問題