私はEclipse Marsとm2eとともにMaven 3.3.3を使用しています。昨日、私は新しいJavaプロジェクトを作成し、それをMavenプロジェクトに変換しました。
その後、クラスパスには標準のsrc/main/Java
ではなくsrc
のみが含まれていました。驚いたが、足りないフォルダを作成してm2eの「Update Project」を実行した。これは問題を解決しませんでした。 m2eは、src
のみを使用することを主張しました。
だから私は手動でクラスパスを編集して、通常の
src/test/Java
src/test/resources
src/main/Java
src/main/resources
ここでm2eの「Update Project」を実行しようとすると、次のエラーが発生します。
Cannot nest 'foo/src/test/Java' inside 'foo/src'. To enable the nesting, exclude 'test/' from 'foo/src'
sigh次にコマンドラインに移動し、mvn Eclipse:eclipse
を実行してこのクラスパスを取得しました。
src/test/Java
src/test/resources
src
src/main/resources
今、私は完全に困惑しています。なぜそれが起こっているのですか?
POMエディターでPOMを開き、「Effective POM」タブをクリックします。 sourceDirectory
を検索します。あなたはおそらくこのようなものを見るでしょう:
<sourceDirectory>src</sourceDirectory>
最初にJavaプロジェクトをMavenに変換したとき、m2eはクラスパスを同じに維持しようとしました。EclipseJavaプロジェクトはデフォルトで異なるレイアウトを持っています。これらはsrc/
を使用しますsrc/main/Java/
の代わりに。Eclipseプロジェクトは通常、テストを別のプロジェクトに配置するため、テストフォルダーはありません。
問題を修正するには:
sourceDirectory
要素を削除します(注:親POMにある場合があります)。これでエラーはなくなり、クラスパスは正しいはずです。
作成できるフォルダには2つのタイプがあります。1)パッケージ2)ソースフォルダ
パッケージを作成するには、目的のフォルダーを右クリックします(この例では、Java Resources)を右クリックしました)->新規->パッケージ
このようなポップアップウィンドウが表示されます
「ソースフォルダ:」ここでプロジェクトを選択します。何も表示されない場合は、[参照...]をクリックしてプロジェクトを見つけます。 「参照...」をクリックすると、次のように表示されます。
「名前:」は、パッケージに付ける名前です。
注:パッケージはソースフォルダー内にある必要があります。ソースフォルダーは親フォルダーです
ソースフォルダーを作成するには、目的のフォルダーを右クリックします(この例では、Java Resources)を右クリックしました)->新規->ソースフォルダー
[プロジェクト名:]にプロジェクトの名前を入力します。ヘルプが必要な場合は、「参照…」をクリックしてください。
「フォルダ名:」の下に、目的のフォルダ名を入力します。
エラー:「src/main/resources」フォルダを作成しようとしていて、「ProjectName」を「ProjectName」内にネストできません。ネストを有効にするには、「main /」を
解決: