2016-07-07 19 views
1

これは働いていた私の古いPOMから<build>タグです:PROD、DEV、テスト:MavenのPOMマルチ環境profiels

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.0</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>2.9</version> 
       <configuration> 
        <wtpversion>2.0</wtpversion> 
        <downloadSources>true</downloadSources> 
        <downloadJavadocs>true</downloadJavadocs> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.axis2</groupId> 
       <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
       <version>1.6.2</version> 
      </plugin> 
     </plugins> 
     <finalName>test</finalName> 
    </build> 

今私はすべての段階のための3つの異なるapi.propertiesファイルを持っていると思います。そこで、私は先に進み、maven用のチュートリアル<profile>をたどりました。これは私がちょうどPRODおよびテスト段階のために(完全に古い<build>タグを削除する)になってしまったものです:

<profiles> 
     <profile> 
      <id>test</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <version>2.0</version> 
         <configuration> 
          <source>1.7</source> 
          <target>1.7</target> 
          <tasks> 
           <delete file="${project.build.outputDirectory}/api.prod.properties" /> 
           <delete file="${project.build.outputDirectory}/api.dev.properties" /> 
           <copy file="src/main/resources/api.test.properties" 
            tofile="${project.build.outputDirectory}/api.properties" /> 
          </tasks> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-eclipse-plugin</artifactId> 
         <version>2.9</version> 
         <configuration> 
          <wtpversion>2.0</wtpversion> 
          <downloadSources>true</downloadSources> 
          <downloadJavadocs>true</downloadJavadocs> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.axis2</groupId> 
         <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
         <version>1.6.2</version> 
        </plugin> 
       </plugins> 
       <finalName>test</finalName> 
      </build> 
     </profile> 
     <profile> 
      <id>prod</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <version>2.0</version> 
         <configuration> 
          <source>1.7</source> 
          <target>1.7</target> 
          <tasks> 
           <delete file="${project.build.outputDirectory}/api.test.properties" /> 
           <delete file="${project.build.outputDirectory}/api.dev.properties" /> 
           <copy file="src/main/resources/api.prod.properties" 
            tofile="${project.build.outputDirectory}/api.properties" /> 
          </tasks> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-eclipse-plugin</artifactId> 
         <version>2.9</version> 
         <configuration> 
          <wtpversion>2.0</wtpversion> 
          <downloadSources>true</downloadSources> 
          <downloadJavadocs>true</downloadJavadocs> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.axis2</groupId> 
         <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
         <version>1.6.2</version> 
        </plugin> 
       </plugins> 
       <finalName>test</finalName> 
      </build> 
     </profile> 
    </profiles> 

本当にしかし、動作しないこと。私が望む3つの戦争(test-prod.war、test-dev.war、...)ではなく、1つの.warを生成し、生成された戦争には3つの.propertiesファイルがすべて含まれます。なぜ、私はそれを修正するために行うことができますか?私はかなり新しい人です...ありがとう!

+0

を参照することができますか? 3つのプロファイルがすべて選択されていますか?これらのプロファイルを1回ずつ実行すると、3つの異なる成果物が提供されます。 – Abaddon666

+0

@ Abaddon666:私はいつものように、私のEclipseにmaven installをインストールしています...どうすれば "違う"ことができますか? – Shiuyin

+0

私は通常、コマンドラインからmavenビルドを実行しています。テストプロファイルを実行するための 'mvn clean install -Ptest'。それ以外の場合は、使用しているメイヴンプラグインのプロファイルを選択する方法をgoogleに登録してください – Abaddon666

答えて

0

使用

mvn clean compile -P prod,dev,test 

もそれが自分のプロフィールタグの外にビルドタグを持っているし、あなたのプラグイン内のプロファイルのプロパティを参照すると良いでしょう。例えばプロファイル内のプロパティのフォルダを指定し、このプロパティを他の場所で参照できます。

<profile> 
     <id>dev</id> 
     <properties> 
      <properties.dir>YOUR_DEV_DIR</properties.dir> 
     </properties> 
    </profile> 

その後、あなたはMavenのビルドを実行するのですかどこか他の${properties.dir}

関連する問題