0

私のプロジェクトのソースjarファイルを生成したいので、maven-source-pluginを追加しました。しかし、私はまた、リソースフィルタリングプラグインを使用して、プロジェクトのプロパティファイルにバージョン番号を設定しています。最終的なjarファイルを生成すると、プロパティファイルがフィルタリングされ、バージョンが設定されます。しかし、ソースjarでは、まだフィルタリングされていないプロパティがあります。ソースプラグインがリソースフィルタリングも呼び出すようにしたいと思います。これどうやってするの?mavenソースからフィルタリングされたリソースを生成する:jarの実行

はここに私のpom.xml

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 

    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>${maven.compiler.source}</source> 
       <target>${maven.compiler.target}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.3</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.7</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

の(一部)であり、ここで私は

version = ${project.version} 

EDIT明確にするため

でフィルタリングするプロパティファイルであり、私の問題の根源は、このライブラリを使って構築されたGWTプロジェクトである別のプロジェクトがあることです。 GWTプロジェクトの要件の一部は、ソースコードをクライアント側のjavascriptにコンパイルしようとするものに対しても利用可能にする必要があることです。したがって、このプロジェクトには、クラスパスにコンパイル済みのjarとソースjarの両方が含まれています。

パッケージパスと名前が同じ2つのプロパティファイルがあります。コンパイル済みのjarファイルとソースjarファイルに存在します。

このファイルを読み取ろうとすると、フィルタされていないソースjarからプロパティファイルが選択されたようです。

+0

ソースジャーにはフィルタリングされず、コンパイルされないプロジェクトのソースが含まれています。その設定とは別に、 ''と ''はデフォルトであるため意味がありません。 (構成に関する条約)。 – khmarbaise

+0

@khmarbaise私のポームに重複した設定情報を指摘してくれてありがとう、私は確かにそれを削除します。なぜ私はソースjarリソースをフィルタリングしたいのかという追加情報を追加しました。私はそれが技術的に間違っていることを理解することができるので、私は遭遇している実際の問題を追加しました。 –

+0

生成リソースフェーズでプロパティをフィルタリングするのはどうですか? –

答えて

0

通常、これにはmaven-source-pluginを使用します。しかし、処理の中でsrc/main/resourcesを処理から除外することはできませんが、同時に処理サイクルにtarget/classesを追加することはできません。

したがって、あなたの最善の策は、maven-assembly-pluginの設定だと思います。

+0

残念ながら、私は単に良いワークフローを定義するまで、プロパティファイルにバージョン番号を手動で設定しています。 –

関連する問題