2016-04-01 19 views
0

現在リソースを収集してパッケージ化している既存のmaven pomプロジェクト<packaging>pom</packaging>は、リソースの一部を検証するために拡張する必要があります。 同じプロジェクトで、私はJavaソースディレクトリsrc/main/javaを作成しました。そこで、いくつかのリソースを検証するための小さなJavaクラスを作成しました。加えて、pomにmaven-compilerとexec-mavenプラグインを設定しました。ビルドタスクをmaven pomプロジェクトに追加する

JavaクラスはIDEでうまく動作しますが、実行すると失敗しますmvn clean installコンパイルされたクラスファイルが見つからないため失敗します。これは、コンパイル/テストコンパイルフェーズがpomパッケージプロジェクトでは使用できないためです。

私の質問は以下のとおりです。

  • 私は、デフォルトのコンパイル相とは異なる相に(コンパイル)を実行するプラグインコンパイラを変更することができます。 (実行タグを追加しようとしましたが、成功しませんでした)
  • これはdoc-pom-packageの一部ではないテスト段階で定義されているため、exec-mavenプラグインはなぜ実行されますか?
  • この検証タスクをpomで実行する他の方法はありますか?

パッケージをpomからjarに変更することは、政治的に最適な解決策です。

+1

ここでは何かが本質的に間違っています。コンパイルするJavaコードを持つ 'pom'プロジェクトですか?ここで本当に何をしようとしていますか?あなたの問題と最終目標は何ですか?あなたの現在のプロジェクト構造は何ですか?関連性:[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Tunaki

答えて

1

はい、pomパッケージのpackageフェーズでコンパイルを実行するようにmaven-compiler-pluginを設定できます。

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.5.1</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>compile</goal> 
       </goals> 
       <phase>package</phase> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.4.0</version> 
     <executions> 
      <execution> 
       <goals> 
        <goal>java</goal> 
       </goals> 
       <phase>package</phase> 
      </execution> 
     </executions> 
     <configuration> 
      <mainClass>com.example.validate.App</mainClass> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 
+3

これは文字通りの悪用です。 'package'段階はソースをコンパイルする段階ではありません。 – Tunaki

関連する問題