2012-03-13 17 views
7

私はMavenプロジェクトを持っています。私はMavenのでそれを構築しようとした際、私はこのエラーを取得する:Maven "クラスファイルが見つかりません"コンパイルエラー

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2. 
    3.2:compile (default-compile) on project myProject: Compilation failure: 
    Compilation failure: 
[ERROR] ClassA.java:[32,38] cannot access ClassB 
[ERROR] class file for ClassB not found 

ClassBは別のアーティファクトの中にある、そのアーティファクトは、ローカルリポジトリです。実際、m2eclipse Mavenプラグインを使ってこのプロジェクトを構築するのに問題はありません。 mvn compileを実行してビルドに失敗したときだけです。

コマンドラインからビルドするには何が必要ですか?

答えて

1

Eclipseはあなたのpom依存関係をバイパスし、あなたのpomにない依存関係を見つけることによってあなたを助けるかもしれません。その後、コマンドラインから実行すると、Eclipseはもはや助けにはならない。私はあなたが明示的に依存関係を述べていることを二重チェックします。お試しください。

mvn dependency:analyze 

詳細については、こちらをご覧ください。

+0

を依存関係が正しくpom.xmlファイルを投稿ポンポン – ade

+0

で定義されていて、あなたは木が(Linuxのtreeコマンドを)助けるsrcをさ –

+0

私はいくつかの後に同じ問題を抱えていました完全な 'mvnクリーンインストール '中にアップストリームの問題をコンパイルします。問題は、Eclipseが独自のワークスペースから解決したものですが、mavenは不完全な、または障害のあるローカルリポジトリで動作する必要がありました。解決方法:(コマンドラインから)もう一度 'mvn clean install'を実行してください。これはm2eclipseによると、それ以上のコンパイルエラーは発生しません。 – krevelen

1

src/main/java領域の代わりにsrc/test/java内に通常のクラスを定義しているようですが、これは時にはEclipseの動作が少し違うためです。

-2

のpom.xmlに追加します。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
       <compilerArguments> 
        <extdirs>src\main\webapp\WEB-INF\lib</extdirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

なぜこれが助けになると思いますか? – dunni

関連する問題