Maven-Archetyp-Webapp Eclipse Problem


75

Ich versuche, eine sehr einfache Webanwendung mit Maven und Eclipse zu erstellen, aber ich habe überhaupt keine Freude, im Gegenteil die Freude.

Ich gehe zu Datei -> Neues Projekt, wähle Maven-Projekt und wähle die Maven-Archetyp-Webanwendung aus. Wenn ich den Assistenten beende, wird eine Webanwendungsstruktur generiert, jedoch ohne Java-Verzeichnis unter main, nur Ressourcen und Webanwendung.

Also klicke ich mit der rechten Maustaste auf main und wähle neue Klasse aus. Die Klasse wird unter Ressourcen (?!) Erstellt, und außerdem scheint es keine Kompilierung durch Java zu geben. Ich kann dumme Fehler machen und es wird keine Syntaxhervorhebung angezeigt. Es ist, als würde Java es nicht erkennen.

Alternativ habe ich versucht, ein neues 'Java'-Verzeichnis unter main zu erstellen, wo es sein sollte, aber immer noch mit den gleichen nicht existierenden Java-Symptomen.

Was gibt? Das macht mich wahnsinnig ..

Vielen Dank an alle!


Leute - vielen Dank! Ich habe gerade Pascals einfache Lösung ausprobiert und sie funktioniert. Ich werde alle Dinge ausprobieren, die Sie alle vorschlagen.
Jeremy

Antworten:


85

Erstellen Sie einfach ein javaVerzeichnis unter main(dh src/main/java) und klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Maven> Projektkonfiguration aktualisieren .


10
Ich weiß, dass dies eine alte Frage ist, aber es ist immer noch ein Top-Hit bei Google. Ich frage mich nur, ob jemand in der Lage ist, Tongas Frage unten zu beantworten und zu erklären, warum Maven dies nicht einfach als Standard einschließt. Gibt es beispielsweise in Maven die Meinung, dass diese Verzeichnisstruktur aus irgendeinem Grund für Web-Apps nicht „gut“ ist?
Mick

22
  1. Wenn Sie ein Projekt mit dem Maven-Archetyp "maven-archetype-webapp" erstellen, werden standardmäßig keine Java- und Testordner erstellt.
  2. Sie können diese Ordner manuell als src / main / java und src / test / java hinzufügen.
  3. Klicken Sie nach dem Hinzufügen dieser Ordner mit der rechten Maustaste auf Ihr Projekt im Projektexplorer und gehen Sie zu maven> update project conf.

6
Dies ist der seltsamste Teil von Maven. Warum nicht alle zusammen src / main / java, src / test / java, src / test / resources erstellen, wenn Sie einen Webapp-Archetyp erstellen? Ist das nicht ein Fehler von Maven?
Tonga

5

Erstellen Sie einfach ein Java-Verzeichnis unter main (dh src / main / java) und klicken Sie mit der rechten Maustaste -> Pfad erstellen -> Quellordner verwenden



3

Dies ist ein großartiger Artikel, den ich gelesen habe, als ich Probleme hatte, mit Maven mehrere Projekte in ein Projekt zu integrieren. In diesem Artikel wird insbesondere erläutert, wie Sie ein WEB-Projekt (War-Datei) einrichten, um ein inneres Standard-Java-Projekt (JAR-Datei) zu verwenden.

Wenn Sie ein grundlegendes Verständnis von Maven haben, fahren Sie mit den Abschnitten am Ende fort: Wie erstelle ich andere Arten von Projekten? Wie baue ich mehr als ein Projekt gleichzeitig?

http://maven.apache.org/guides/getting-started/index.html#How_do_I_build_other_types_of_projects

Wenn Sie Maven noch nicht kennen, lesen Sie Folgendes:

http://www.mkyong.com/spring/quick-start-maven-spring-example/

Vertrau mir, Mkyong weiß, was los ist!


1
Vielen Dank für den Link zum Verständnis von Mavens Art, mehrere Projekte zu verwenden.
Asgs

3

Erstellen Sie einfach einen neuen Ordner mit dem Namen Java unter src / main /

Klicken Sie dann mit der rechten Maustaste auf Projekt und wählen Sie maven-> Projekt aktualisieren


2

Es gibt eine Option zum Erstellen eines Quellverzeichnisses in Eclipse. Sie können auch den Pfad unter den Projekteigenschaften erstellen und ein vorhandenes Verzeichnis als Quellverzeichnis hinzufügen.

Wenn Sie eine nicht standardmäßige Verzeichnisstruktur verwenden möchten, müssen Sie diese jedoch in maven angeben


2

Es wird eine Webanwendungsstruktur generiert, die jedoch kein 'Java'-Verzeichnis unter main enthält

Erstellen Sie src / main / java selbst.

Darüber hinaus scheint es keine Zusammenstellung von Java zu geben. Ich kann dumme Fehler machen und es wird keine Syntaxhervorhebung angezeigt. Es ist, als würde Java es nicht erkennen.

Führen Sie nach dem Erstellen der entsprechenden Verzeichnisstruktur den Befehl maven aus

mvn eclipse:eclipse 

Aktualisieren Sie dann das Projekt in Eclipse.

-SE


Das OP verwendet m2eclipse, nicht das Maven-Eclipse-Plugin
Pascal Thivent

Genial! Das Maven-Eclipse-Plugin ist viel besser als m2e.
Asgs

2

für src / main / java dein projekt >> eigenschaften >> java build path >>
quelle >> suche "dein projekt src / main / java (missin)" >>>

bearbeiten> Ordnername >> weiter >> Einschlussmuster: -----> Hinzufügen >> src / main / java OK

und wenn Fehler immer noch nicht verschwinden

>>>  look in Target Runtimes  and check your apache in checkbox

Früher bekam ich einen Compilerfehler, der mich aufforderte, meinen Paketnamen in main.java.xyz umzubenennen. Nach diesem Schritt fragt Eclipse nie wieder danach. Bis src / main / java auf dem src-Pfad ist. xyz ist mein Paketname. Und jetzt kann ich Paket xyz ohne Fehler schreiben. Danke
Dexter

<plugins> <plugin> <artifactId> maven-compiler-plugin </ifactId> <version> 3.6.1 </ version> <configuration> <source> 1.8 </ source> <target> 1.8 </ target> </ configuration > </ plugin> <plugin> <groupId> org.apache.maven.plugins </ groupId> <artifactId> maven-war-plugin </ifactId> <version> 3.1.0 </ version> <configuration> <! - - <warSourceDirectory> WebContent </ warSourceDirectory> -> </ configuration> </ plugin> </ plugins>
Lisa

1

In IntelliJ IDEA 13 müssen Sie zuerst den Ordner "Java" im Hauptordner erstellen und dann -> gehen Sie zu "Moduleinstellung öffnen" - dazu auf den Projektnamen klicken und f4- drücken und die Bezeichnung des Ordners "Java" auf "setzen". Quelle" .


1

Hier ist meine Lösung. Es funktioniert ohne Probleme.

Es könnte Fragen geben, warum all diese Schritte erforderlich sind und ich glaube, dass sie ziemlich echt sind. Dies ist jedoch eine der Möglichkeiten, Ihre Webanwendung oder eine andere Komponente mithilfe von Maven über die Befehlszeile an Eclipse arbeiten zu lassen .

1) Öffnen Sie ein Befehlsfenster

2) mvn-Archetyp: Erzeugen Sie -DgroupId = Ihr Paket -DartifactId = Ihr Projekt -DarchetypeArtifactId = Ihren Archetyp. In meinem Fall "maven-archetype-webapp" -DinteractiveMode = false

3) CD Ihr Projekt

4) mvn eclipse: eclipse -Dwtpversion = 2.0

5) Gehen Sie zum Dateisystem. Gehen Sie zu Ihrem neu erstellten Projekt. Erstellen Sie Ordner, a) Java unter Haupt
b) Test unter src c) Java und Ressourcen unter Test

6) mvn eclipse: sauber

7) mvn eclipse: eclipse -Dwtpversion = 2.0

8) Importieren Sie Ihr Projektprojekt in Eclipse

Danke, Sid


1

Mach es umgekehrt. Erstellen Sie zuerst ein Webapp-Projekt und fügen Sie dann das Maven-Framework hinzu (klicken Sie in Intellij mit der rechten Maustaste auf Projekt und wählen Sie Framework-Unterstützung hinzufügen). Es werden die richtigen Ordner für Sie erstellt.


1

Klicken Sie mit der rechten Maustaste auf das Maven-Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren. Auf der Registerkarte Reihenfolge und Export wird die Meldung angezeigt, dass das Kontrollkästchen "JRE-Systembibliothek" und "Maven-Abhängigkeiten" aktiviert ist. Klicken Sie auf "OK"


1

Ich hatte das gleiche Problem, selbst als ich meiner aktuellen Java-Version die JRE-Systembibliothek hinzufügte, aber immer noch das gleiche Problem, dann habe ich einfach die JRE-Systembibliothek gelöscht und wieder hinzugefügt, dass es für mich funktioniert hat

  • Um die JRE-Systembibliothek zu löschen, klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Java-Erstellungspfad -> Wählen Sie JRE-Systembibliothek -> Entfernen

  • Um JRE hinzuzufügen, gehen Sie zu Eigenschaften-> Java-Erstellungspfad -> Bibliothek hinzufügen -> JRE-Systembibliothek -> wählen Sie JRE -> Fertig stellen


1

Fügen Sie einfach einen neuen Ordner "java" unter src / main hinzu. wird das Problem lösen. Da der Klassenpfad mit dem Java-Ordner bereits in der .classpath-Datei des erstellten Projekts verfügbar ist, verursacht das Hinzufügen eines Java-Ordners keinen Fehler. siehe unten Eintrag in der .classpath-Datei, mit der Sie einen Java-Ordner hinzufügen können.

<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>


0

Fehler tritt auf, wenn die JRE-Systembibliothek falsch angezeigt wird. Gehen Sie nun zur Registerkarte Bibliotheken und ändern Sie die JRE-Systembibliothek in die richtige Version.


0

Die folgenden Schritte funktionieren in Eclipse 2020-06

  1. Datei-> Neu-> Maven-Projekt
  2. Wählen Sie "Einfaches Projekt erstellen (Auswahl des Archetyps überspringen)".
  3. Wählen Sie die Verpackung als "Krieg" (dadurch werden sowohl Webapp- als auch Java-Ordner erstellt).
  4. Erstellen Sie das Projekt, nachdem Sie die Gruppen-ID und die Artefakt-ID angegeben haben
  5. Aktualisieren Sie pom.xml mit Java- und Compiler-Versionen, klicken Sie mit der rechten Maustaste auf Projekt und wählen Sie Maven-> Projekt aktualisieren
  6. Wenn das Projekt keine facettierte Form hat (es ist keine facettierte Form, wenn beim Erweitern des Projekts im Projektexplorer keine Details wie "Deployment Descriptor" und "JAX-WS Web Services" angezeigt werden. Dies ist in einer meiner Eclipse-Installationen geschehen und ich hatte keine Ahnung warum), dann mache die folgenden Schritte
    1. Klicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu Eigenschaften, klicken Sie auf Projektfacetten, konvertieren Sie in facettierte Form, wählen Sie die richtige "Dynamic Web Module" -Version, aktivieren Sie das Kontrollkästchen und wählen Sie auch die richtige Java Facet-Version.
    2. In diesem Fenster wird "Weitere Konfiguration verfügbar" angezeigt. Klicken Sie darauf und geben Sie den WebContent-Ordner an. (Ersetzen Sie WebContent durch src / main / webapp)
    3. Wenn Sie die Anwendung auf Servern ausführen möchten, die in Eclipse konfiguriert wurden, geben Sie Maven-Abhängigkeiten an, die in "Deployment Assembly" bereitgestellt werden sollen. Dies wird auch Maven "bereitgestellte" Abhängigkeiten bereitstellen, aber ich denke, es ist in Ordnung zum Testen. Für die eigentliche Verteilung können Sie eine aus dem Maven-Paket generierte Kriegsdatei bereitstellen.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.