web-dev-qa-db-ja.com

Mavenが突然src / main / javaではなくsrc /を必要とする

私は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

今、私は完全に困惑しています。なぜそれが起こっているのですか?

11
Aaron Digulla

POMエディターでPOMを開き、「Effective POM」タブをクリックします。 sourceDirectoryを検索します。あなたはおそらくこのようなものを見るでしょう:

<sourceDirectory>src</sourceDirectory>

最初にJavaプロジェクトをMavenに変換したとき、m2eはクラスパスを同じに維持しようとしました。EclipseJavaプロジェクトはデフォルトで異なるレイアウトを持っています。これらはsrc/を使用しますsrc/main/Java/の代わりに。Eclipseプロジェクトは通常、テストを別のプロジェクトに配置するため、テストフォルダーはありません。

問題を修正するには:

  1. POMからsourceDirectory要素を削除します(注:親POMにある場合があります)。
  2. プロジェクトに行く
  3. すべてのソースフォルダを選択
  4. ビルドパスから削除します(コンテキストメニュー->ビルドパス->ビルドパスから削除)。
  5. プロジェクトを更新する

これでエラーはなくなり、クラスパスは正しいはずです。

37
Aaron Digulla

作成できるフォルダには2つのタイプがあります。1)パッケージ2)ソースフォルダ

1)パッケージは次のようになります enter image description here

パッケージを作成するには、目的のフォルダーを右クリックします(この例では、Java Resources)を右クリックしました)->新規->パッケージ

enter image description here

このようなポップアップウィンドウが表示されます

enter image description here

「ソースフォルダ:」ここでプロジェクトを選択します。何も表示されない場合は、[参照...]をクリックしてプロジェクトを見つけます。 「参照...」をクリックすると、次のように表示されます。

「名前:」は、パッケージに付ける名前です。

enter image description here

注:パッケージはソースフォルダー内にある必要があります。ソースフォルダーは親フォルダーです

2)ソースフォルダは次のようになります: enter image description here

ソースフォルダーを作成するには、目的のフォルダーを右クリックします(この例では、Java Resources)を右クリックしました)->新規->ソースフォルダー

enter image description here

[プロジェクト名:]にプロジェクトの名前を入力します。ヘルプが必要な場合は、「参照…」をクリックしてください。

「フォルダ名:」の下に、目的のフォルダ名を入力します。

エラー:「src/main/resources」フォルダを作成しようとしていて、「ProjectName」を「ProjectName」内にネストできません。ネストを有効にするには、「main /」を

enter image description here

解決:

--Pic 8--

2
Gene