web-dev-qa-db-ja.com

MavenプロジェクトがEclipseでJavaとして扱われていない

さまざまなMavenプロジェクトが多数あるプロジェクトに取り組んでいます。私はこれらのプロジェクトで一連のJUnitテストを行ってきましたが、通常はこれでうまくいきます。 Eclipseを開いて、パッケージを右クリックし、[エクスプローラ]-> [インポート...]をクリックします。既存のMavenプロジェクトがあり、プロジェクトを正常にインポートできます。ビルドして、src/test/Javaにドリルダウンできます。ファイルを右クリックして、Run As JUnitテストを実行します。しかし、時々、これを機能させることができません。右クリックして実行を実行すると、AspectJ/Javaアプリケーションのみが表示されます。 JUnitテストはありません。

プロジェクトフォルダーの横にあるアイコンにはMとフォルダーのアイコンしかありませんが、機能するプロジェクトにはフォルダーMとAJがあります。また、通常のJavaプロジェクトのようにファイルをパッケージに分類していないようです。プロジェクトをAspectJプロジェクトとして扱っていないようです。Eclipseの入手方法このMavenプロジェクトをJavaプロジェクト?

22
FuriousGeorge

既存の回答のいくつかは機能するはずですが、Javaファセットを追加することを提案するものは、プロジェクトがすでにファセットされた性質である(または変換したい)場合にのみ機能します。 pom.xmlは、プロジェクトをMavenプロジェクトとして再インポートした場合にのみ機能します。

既存のプロジェクトを「修正」する場合、つまりJavaネイチャーを追加し、ファセットフォームに変換せず、削除して再インポートせずに、.projectファイル(外部的に、またはEclipseのナビゲータービューを使用して、パッケージエクスプローラーに表示されないため)にJavaビルダーおよびJava =既存のMavenビルダー/自然の性質:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>yourprojectname</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <!-- add this build command -->
        <buildCommand>
            <name>org.Eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <!-- this would've already been there -->
        <buildCommand>
            <name>org.Eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <!-- add this nature -->
        <nature>org.Eclipse.jdt.core.javanature</nature>
        <!-- this would've already been there -->
        <nature>org.Eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

大文字と小文字が異なることに注意してください(javabuilderはmaven2Builder、javanatureはmaven2Nature)。

保存するとすぐに、自動的に再構築されます。ソースフォルダーを手動で追加する必要がある場合があります(Project properties-> Java Build Path-> Sourceタブ-> Add Folder...

39

Project-> Properties-> Project Facetsを右クリックし、ケースに該当するすべてのファセット(Javaなど)を選択します。

13
fmucar

mvn Eclipse:eclipseは必要な.projectファイルを作成し、Java自然とその他のプロパティをプロジェクトに追加します

8
V N

私は同じ問題に直面しており、以下の手順で私の問題を解決しました:

1-問題のあるプロジェクトのpom.xmlを開きます。

2-[概要]タブで、アーティファクト/パッケージの設定を確認します。

3-「pom」に設定されている場合は、「jar」に変更します。

4-変更を保存し、Eclipseからのみプロジェクトを削除して、再度インポートします。

お役に立てば幸いです。

4
Rami

Eclipseプロジェクトファセット プロパティに依存します(Java EE)を使用している場合)、プロジェクトプロパティを右クリックして、プロジェクトに定義されているファセットを確認することをお勧めします。

4
RoiG

私は同じ問題に直面しました(pom.xmlをEclipseにインポートした後、プロジェクトはJava oneとして扱われず、プロジェクトビルダープロパティに「mavenプロジェクトビルダー」しかありませんが、「 Eclipse lunaのJavaビルダー」)。

「.settings」フォルダーと「.project」ファイルを削除した後にMavenプロジェクトを再インポートすると、機能しませんでした。ワークスペースの切り替えがうまくいった後、再インポートしました。

3
chao_chang

私は同僚と話し、問題を「修正」することができました。私は(ディスクからではなく)Eclipseから削除し、すぐにMavenインポートをやり直したところ、魔法のように機能します。

Pom.xmlにエラーがあった場合、特に親バージョンが間違っていた場合、Mavenプロジェクトが適切にインポート/作成されないようです。 POMの問題を修正すると、プロジェクトは問題なく正常にビルドされますが、それでもMavenプロジェクトに過ぎませんでした。それを削除して再インポートすると、Maven/AspectJプロジェクトとして扱われます。

1
FuriousGeorge

これを実現するには2つの方法があります。

1)プロジェクトの性質を変更する。 [プロジェクト]-> [プロパティ]-> [プロジェクトネイチャー]を右クリックし、ケースに適用されるすべてのネイチャー(Javaなど)を選択します。

(または)

2).projectファイルを更新して、プロジェクトに必要なすべての性質を追加します。この.projectファイルは、プロジェクトのルートフォルダーにあります。何らかの理由でファイルが存在しない場合は、新しいファイルを作成し、次のように、必要な各性質のセクションを追加します。

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>yourprojectName</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.Eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
                        <name>org.Eclipse.wst.common.project.facet.core.builder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
                        <name>org.Eclipse.m2e.core.maven2Builder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.Eclipse.wst.common.project.facet.core.nature</nature>
                <nature>org.Eclipse.jdt.core.javanature</nature>
                <nature>org.Eclipse.m2e.core.maven2Nature</nature>
        </natures>
</projectDescription> 
1
kanaparthikiran

pom.xml AspectJネイチャーを取得しないプロジェクト(プロジェクトのAJ)のファイル。 AspectJ-Mavenプラグインが欠落していますか?次のようなセクションが必要です。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>aspectj-maven-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <!-- use this goal to weave all your main classes -->
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <complianceLevel>1.6</complianceLevel>
    </configuration>
</plugin>

彼の質問も見てください: EclipseのMaven/AJDTプロジェクト

1
Richard Neish

私の5セント...私の場合、pomファイルが「package as ear」に設定されていたため、プロジェクトの「Java」の性質を常に「失っていました」。ただし、エラーメッセージや警告メッセージはありませんでした。パッケージを「jar」に変更するとすぐに、プロジェクトの性質をJavaに設定でき、永続化されます。

0
daniel sp

私も同じ問題を抱えていました。私の場合、それはEclipseワークスペースの何らかの欠陥でした。私はそれを再作成し(.metadataディレクトリを削除しました)、問題を修正しました。

0
Serge Bogatyrev

このスレッドで説明されているすべてのアプローチも試しました。 Mavenライブラリーはプロジェクトのビルドに使用されず、プロジェクトのビルドは失敗するため、.projectのみを変更するだけでは不十分です。 mvn Eclipse:eclipseは、実際にはm2eを使用せずに、長くて役に立たない.classpathを作成します。

最も簡単な方法は、新しいJavaプロジェクトを作成し、それをMavenプロジェクトに変換して、この新しいプロジェクトの.projectと.classpathを開きます。次に、インポートしたMavenプロジェクトに同様の変更を加えます。

.projectファイルの重要な変更について説明しましたが、EclipseでMavenの依存関係を使用するには、次のようなものが.classpathファイルにある必要があります

<classpathentry kind="con" path="org.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>

この場合、ファセットの使用はオプションではありません。ファセットを使用すると、Eclipseはm2eおよびmaven依存関係を使用しないためです。ここでも、ファセットとの依存関係は手動で管理する必要があります。

私はEclipse 4.6.2 Neonでこれをすべて試しました。

0
Xaltotun