2017-01-10 6 views
1

私は1つのmavenプロジェクトを持っています。私は、外部プロパティファイルに外部依存化依存バージョンを外部化したい。 私はプロパティファイルを試しましたプラグイン私はプロパティファイルを読み込んでいません。プロパティファイルから痴漢バージョンを読む方法

config.properties

springframework.version=4.2.5.RELEASE 

pom.xmlファイル

<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>com.estuate.test</groupId> 
<artifactId>testPom</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-1</version> 
      <executions> 
       <execution> 
        <phase>pre-clean</phase> 
        <goals> 
         <goal>read-project-properties</goal> 
        </goals> 
        <configuration> 
         <files> 
          <file>config.properties</file> 
         </files> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${springframework.version}</version> 
    </dependency> 
</dependencies> 

はまだ私が私を助けてください

build.plugins.plugin[org.codehaus.mojo:properties-maven-plugin].dependencies.dependency.version' for org.springframework:spring-core:jar must be a valid version but is '${springframework.version}' 

としてエラーメッセージをgetttingています。

+0

に[プロパティ-のmaven-pluginの](http://www.mojohaus.org/properties-maven-plugin/)の最新バージョンを使用していないのはなぜ1.0.0? – khmarbaise

+0

私は解決策を理解しませんでした。私は1つのpom.xmlファイルしか持っていません。私は親のMavenプロジェクトやモジュールモジュールを持っていません。 –

答えて

0

のように見えるプラグインの詳細です指定した段階でのみ実行されることを認識する必要があります。 事前クリーニングフェーズは、クリーンライフサイクルの一部であり、ビルドライフサイクルの一部ではありません。

Mavenは、ライフサイクルで構成され、一定のフェーズまで実行されます。 mvn compileというコマンドは、のライフサイクルをすべてのフェーズコンパイルフェーズまで実行することを意味します。標準のライフサイクルの

二つは(ない完全なリスト)は次のとおりです。おそらく相をコンパイルするための標準的なプラグインで使用されている指定

clean :: pre-clean -> clean -> post-clean 

build :: validate -> compile -> test -> package -> verify -> install -> deploy 

依存関係、その性質は、その時点で利用可能にする必要があります。

プリクリーンフェーズを指定すると、mvn cleanを実行するとプロパティが使用可能になります。プロパティは相をコンパイルで利用可能にするためには

、あなたはおそらく代わりに検証相に結合するはずです。

非常に冗長ですが、実際には、デバッグモードでは多くのヒントがmvn -Xで実行されていますが、最初は理解しすぎる可能性があります。

ここではMavenのライフサイクルに関するいくつかの詳細情報:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

+0

私はフェーズで試しました:検証し、コンパイルしてください。しかし、うまくいかない –

-1

だと思います。 springframework.versionステートメントにSpringバージョンを割り当てる必要があります。例

 <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.3.1-REALESE</version> 
    </dependency> 

については その後、他の依存関係

<dependency> 
    <groupId>...framework...</groupId> 
    <artifactId>spring-...</artifactId> 
    <version>${springframework.version}</version> 
</dependency> 
0

あなたはMavenのプロジェクトでプロパティファイルを読み込むための提案方法の一つであるMavenのプロパティプラグインを使用することができます。下のあなたが行うようにあなたは、カスタムの実行にプラグインを追加すると

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-1</version> 
      <executions> 
       <execution> 
       <phase>initialize</phase> 
       <goals> 
        <goal>read-project-properties</goal> 
       </goals> 
       <configuration> 
        <files> 
        <file>Versions.properties</file> 
        </files> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${springframework.version}</version> 
    </dependency> 
</dependencies> 

Version.propertiesファイルは、その後、

springframework.version = 4.2.5.RELEASE

+0

これは実際に彼がしようとしていることです。同じプラグインの同じ目標です。あなたは彼が縛っている段階である彼の問題を見逃しています。 –

+0

はいニールセン正しい、私は違いが実行フェーズを変更しました。 –

+0

それはうまくいかない –

関連する問題