2017-08-17 10 views
0

pom.xmlの要素をJREバージョンで切り替える必要があります。私はJRE 7を使用してビルドする場合、常にコメントを次のように切り替えます。pom.xmlの要素を切り替える最も良い方法

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derby</artifactId> 
    <!-- If using JRE 7 --> 
    <!--<version>10.12.1.1</version>--> 
    <!-- If using JRE 8, no need to set version --> 
</dependency> 

... 

<jvmArguments> 
    <!-- If using JRE 7 --> 
    <!-- -XX:MaxPermSize=64m -Xloggc:logs/gc.log --> 
    <!-- If using JRE 8 --> 
    -XX:MaxMetaspaceSize=64m -Xloggc:logs/gc_%p_%t.log 
</jvmArguments> 

JREバージョンで要素を切り替える最も良い方法は何ですか?

答えて

2

私はこのようなプロファイルを定義することを意味するmaven handle that on it's ownを聞かせすることをお勧め:

<properties> 
    <!-- default properties --> 
    <jvm.args>-XX:MaxMetaspaceSize=64m -Xloggc:logs/gc_%p_%t.log</jvm.args> 
    <derby.version>USE_REQUIRED_JRE8_DERBY_VERSION</derby.version> 
</properties> 

... 

<profiles> 
    <profile> 
    <activation> 
     <jdk>1.7</jdk> 
    </activation> 
    <properties> 
     <jvm.args>-XX:MaxPermSize=64m -Xloggc:logs/gc.log</jvm.args> 
     <derby.version>10.12.1.1</derby.version> 
    </properties> 
    </profile> 
</profiles> 
+0

ありがとうございます。やってみます。 –

+0

これは最善の方法だと思います! –

3

Mavenプロファイルを使用する方法があります(詳細はthisを参照)。この背後にある考え方は、具体的な値の代わりにプロパティーを使用し、特定のJREプロファイルで異なる値で初期化することです。

特定のプロファイルを有効にするには、mavenコマンド(例:mvn -Pjre7パッケージ)に-Pを追加します。

以下に、2つのプロファイルの可能な定義例を示します。

<project> 

    ... 

    <profiles> 
     <!-- JRE 7 specific config elements --> 
     <profile> 
      <id>jre7</id> 
      <properties> 
       <jvm.args>-XX:MaxPermSize=64m -Xloggc:logs/gc.log</jvm.args> 
       <derby.version>10.12.1.1</derby.version> 
      </properties> 
     </profile> 
     <!-- JRE 8 specific config elements --> 
     <profile> 
      <id>jre8</id> 
      <!-- activates jre8 by default --> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <properties> 
       <jvm.args>-XX:MaxMetaspaceSize=64m -Xloggc:logs/gc_%p_%t.log</jvm.args> 
       <derby.version>USE_REQUIRED_JRE8_DERBY_VERSION</derby.version> 
      </properties> 
     </profile> 
    </profiles> 

    <dependencies> 
     ... 
     <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>${derby.version}</version> 
     </dependency> 
     ... 
    </dependencies> 

    ... 

    <jvmArguments> 
     ${jvm.args} 
    </jvmArguments> 
<project> 
+0

ありがとうございました!良い。 –

関連する問題