2017-05-22 6 views
0

コンパイルフェーズで動作するカスタムmavenプラグインを作成しました。プラグインはクラスパス上のリソースを検索しようとしますが、 は見つかりません。 プラグイン:コンパイルフェーズでカスタムMavenプラグインのリソースを取得できません

<plugin> 
    <groupId>com.mygroup</groupId> 
    <artifactId>myplugin-maven-plugin</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <executions> 
     <execution> 
      <phase>compile</phase> 
       <goals> 
        <goal>build</goal> 
       </goals> 
     </execution> 
    </executions> 
</plugin> 

プラグインのコードでは、私が使用しています:

プロジェクトのルートにMYFILE.TXTを入れてみましたた、インストール MVNクリーンを実行するときにNullPointerExceptionになり
InputStream is = this.getClass().getClassLoader().getResource("myFile.txt").openStream(); 

、 src フォルダーまたはsrc/main/resourcesフォルダー。毎回getResourceが を返します。私はまた、使用しようとしました:

InputStream is = Thread.currentThread().getContextClassLoader().getResource("myFile.txt").openStream(); 

また、両方ともgetResourceAsStreamと何も役立ちません。

これはコンパイルフェーズと関係しますか?私は プラグインが入力ファイルのプロパティに基づいてコードを生成するようにしたいと思います。

ありがとうございます!

+0

ここに間違いがあります。プラグインがgetResource()を介してリソースにアクセスしようとすると、それは自身のjar内で検索するか、プラグインクラスパス上でより正確に検索されますが、ビルド中のプロジェクトのクラスパスでは**表示されません。ソースコードを見て、プロジェクトのパスにアクセスする方法をmaven-resources-plugin ... – khmarbaise

+0

ありがとうございます。しかし、正しいクラスパスを探しているので、プロジェクトでプラグインを使用しています。しかし、私は問題を発見した、私は実行時にコンパイル段階を指定すべきではありません。私は自分の質問に答えます。 – Kjeld

答えて

0

解決策が見つかりました。まず、私は位相を指定しないと問題が解消したと思っていましたが、そうしないとプラグインをまったく実行しません。 私にとっては、プロジェクトルートにmyFile.txtを持つFileInputStream( "myFile.txt")を使用するだけです。

関連する問題