1

次の構成を使用して外部プロパティファイルからプロパティを読み取るために、次のコードをpom.xmlに追加しました。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
      <execution>
        <phase>initialize</phase>
        <goals>
          <goal>read-project-properties</goal>
        </goals>
        <configuration>
          <files>
            <file>..\maven.properties</file>
          </files>
        </configuration>
      </execution>
    </executions>
</plugin>

私のmaven.propertiesファイルには次のものがあります。

アスペクトj-maven-plugin.version=1.4

version-maven-plugin.version = 2.0

${versions-maven-plugin.version}pom.xmlで使用しています

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>${versions-maven-plugin.version}</version>
  <configuration>
    <rulesUri>url</rulesUri>
    <includesList>com.package:*</includesList>
  </configuration>
</plugin>

しかし、mvn clean installプラグインのバージョンが無効であるという例外がパッケージで実行されるとスローされます。これが発生する理由は何ですか?

注:pom.xmlとmave.propertiesの両方が同じフォルダーにあります

4

1 に答える 1

4

理由は非常に単純です。Mavenの構成を読み取れるようにするにはproperties-maven-plugin、他のすべてのプラグインも解析する必要があります。実際にプラグインを起動する前に、プラグインが何をするかを知ることはできません。

それをしている間、それはそれがすべての必要なバージョンを持っていないことに気づきます。この検証ステップは、最初のプラグインがインスタンス化されるずっと前に行われます。

結論:あなたのアプローチはうまくいきません。あなたができることは、プロパティをPOMに入れ、そこからプロパティファイルに抽出することです(たとえば、maven-resources-pluginを使用して)。

于 2013-02-05T15:19:16.083 に答える