2013-08-21 14 views
10

mvn exec:execまたはmvn exec:javaを実行すると、まずソースをコンパイルし、成功した場合は実行するようにPOMを設定しようとしています。実行前にMvnをコンパイルする

私は次のことを有し、約<execution>一部を移動しようとしたが、それは仕事を得ることはできません。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>exec</phase> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>my.main.class</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

私はmvn exec:exec ...またはmvn exec:javaのいずれかを行うと、それは最初にコンパイルされません。私は<execution>execのプラグインセクションに入れてみましたが、それもうまくいかなかったのですか?

+0

exec:exec/exec:javaの前に "compiler:compile"を実行してみませんか? –

+2

@Elad私はコンパイルを忘れてしまい、何も変わっていない理由を混乱させてしまいます。 – Lerp

+0

@Lerp同じ問題に直面して、解決策を見つけましたか? – Yaroslav

答えて

1

あなたはbuild lifecyclecompile次相へのexecのプラグイン(以下の例ではverify)に結合することができます

<profile> 
    <id>proxy</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.2.1</version> 
       <executions> 
        <execution> 
         <phase>verify</phase> 
         <goals> 
          <goal>exec</goal> 
         </goals> 
         <configuration> 
          <mainClass>my.main.class</mainClass> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

mvn verifyを実行するよりもを。

私は答えが非常に遅いとあなたが解決策を見つけた可能性があります参照してください。 私はそれを必要とするかもしれない他人のために参考にしています。

+3

OPが 'mvn exec:[exec | java]'の[直接]実行中にコンパイルを実行しようとしていて、 '通常の' Mavenビルドサイクルの一部として**ではありません。わかりやすくするために、私たちは 'mvn exec'を実行するときにコードを最初に作成したいが、**通常のMavenビルドサイクル/フェーズ中に 'exec'を実行しないようにしたい。 –

0

これは古いトピックですが、他の人がこれに代わる解決策に興味があるかもしれません。

それはあなたが探していたまさにではないのですが、あなたはコンパイルして、単一のコマンドを使用して実行できます。

mvn compile exec:exec 

この方法Mavenのはいつもそれを実行する前に、プロジェクトをコンパイルします。

関連する問題