Frage

ich m2eclipse Maven Java-Projekte in Eclipse importieren.

Es schlägt fehl src/main/webapp als Quellverzeichnis zu erkennen.

Grafisch im Paket-Explorer (oder wenn ich mich in Java-Build-Path in den Eigenschaften des Projektes), Frankreich Dieses Verzeichnis ist nicht in der Liste der Quellen-Ordner (während src/main/java oder src/main/resources tun).

es zugreifen zu können, habe ich direkt in das src / Verzeichnis suchen, und starten Entfaltung ... Nicht sehr praktisch!

Wenn ich jedoch maven install ausführen, werden die Ressourcen in das richtige Verzeichnis kopiert.
(Beispiel: src/main/webapp/index.jsp bis target/mywar/index.jsp)

Fragen

  1. Ist das ein richtiges Verhalten? (Ich dachte, es könnte als andere Mittel behandelt werden, ...)
  2. Kann ich das Problem beheben?
  3. Ich frage mich, ob es andere Nachteile für diese Situation ist, dass ich nicht gerade jetzt bewusst sein?
War es hilfreich?

Lösung

  
      
  1. Ist das ein richtiges Verhalten? (Ich dachte, es könnte als andere Mittel behandelt werden, ...)
  2.   
  3. Kann ich das Problem beheben?
  4.   
  5. Ich frage mich, ob es andere Nachteile für diese Situation ist, dass ich nicht gerade jetzt bewusst sein?
  6.   
  1. Ja, das ist für mich das richtige Verhalten.
  2. Es ist nicht wirklich Sinn für src / main / webapp macht einen Quellordner zu sein, ist es nicht übersetzbar Quelldateien enthalten.
  3. Ich weiß es nicht. Ich denke, es auf Ihre Erwartungen abhängt:)

Wie gesagt, m2eclipse einen Beitrag geleistet, die src/main/webapp verfügbar auf der obersten Ebene mit einer bestimmten „Web-Ressourcen“ -Label, so etwas machen kann:

alt text

Dies könnte eine Lösung für Ihr Anliegen (die nicht bequem faltbar) sein.

Andere Tipps

Was Maven betrifft, so ist src/main/webapp kein Quellordner in dem Sinne, dass es Inhalte nicht target/classes kompiliert / kopiert, so von m2eclipse Sicht, dieses richtige Verhalten ist. Gibt es einen bestimmten Grund, warum Sie src / main / webapp benötigen als Eclipse-Quellordner markiert werden?

Anstelle der Zugabe / src / main / webapp als Quellordner in dem Java-Build-Pfad, fügen Sie es als Ordner in der Entfaltungsbaugruppe enthalten:

MyProject -> Eigenschaften -> Deployment Assembly: Add "/ src / main / webapp" setzt auf "/"

Nun, Sie nur die src / main / webapp als Eclipse-src-Ordner markieren müssen:

Rechtsklick Webapp Ordner -> Build-Pfad -> Verwendung als Quellordner

Denken Sie nicht, Sie leicht dieses Verhalten ohne hässliche Hacks ändern kann, Kennzeichnung der src ist nur etwas Bestimmtes Eklipse, dass es zu konfigurieren, nutzt seine Classpath etc.

In meinem Fall hätte Eclipse-src/main/webapp als Web-Ressourcen-Ordner zu erkennen. Ich beschloss, es durch:

  1. Löschen des Projekts
  2. Neustarten Eclipse
  3. Einen neuen Update des Maven Projekt SVN bilden.

Eine Lösung ist M2e Unterstützung für Build-Helfer Maven Plugin zu nutzen und src / main / webapp als additioanl Ressourcenpfad zu erklären. Dies macht auch Eclipse Kopie gespeichert Ressourcen, um die Build-Ziel-Ordnerstruktur.

        <!-- help eclipse identify the webapp folder as a resource folder: -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/webapp</directory>
                                <targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Viele Antworten behaupten, dass es nicht sens macht src/main/webapp als Quellordner haben, weil JSP-Dateien vom Container kompiliert werden und nicht während der Build-Zyklus maven.

Es ist jedoch macht Sinn , wenn Sie tun, Sicherheitstests :

Einige Sicherheits-Scanning-Tools Plugins bieten, die in IDEs integriert werden können, so dass Entwicklungsteams vor Ort können ihren Code scannen und grundlegende Schwachstellen auf ihrer Maschine beheben, so dass die Menge an Arbeit für Sicherheitsteams reduziert wird, die deshalb auf fortgeschritteneren Tests arbeiten kann.

Die Tatsache, dass Eclipse-dieses spezielle Verzeichnis ausschließt, ist ein großes Problem: indem Sie, dass Sicherheits-Tools wird nicht standardmäßig sind das webapp/ Verzeichnis in den Scan-Prozess, der in falsch-negative Ergebnisse (Ist Schwachstellen, die durch das Werkzeug nicht ausgewiesen werden). Dieses Verhalten führt dann Teams Entwicklung zu denken, dass ihre JSP-Seiten (zum Beispiel) aus einer sicherheitstechnischen Sicht sicher sind.

Wenn die Sicherheit Test-Team nicht achtet auf den von Entwicklungsteams durchgeführt Scans (manchmal können wir nicht einmal prüfen, welche Scans wurden lokal ausgeführt), das Produkt ist eher mit Schwachstellen im Code in dem enthaltene freigegeben werden webapp/ Ordner.

So tritt dieses Verhalten nicht Sinn von einem Standpunkt der Sicherheit machen, und Menschen, die behaupten es einige Punkte nicht fehlen.

Auf jeden Fall habe ich dieses Problem gelöst, indem Sie die src/main/webapp/ Ordner in den Build-Pfad von rechts in der package explorer klicken -> build path -> use as source folder

Ich kann aus einem Grunde denken.

Ich verwende Maven für ein GWT-Projekt in Eclipse zu entwickeln. In meiner Konfiguration, die src / main / webapp Verzeichnis enthält die HTML und CSS-Dateien, die ich als Teil meiner Entwicklungsarbeit zu verweisen habe, auch wenn sie nicht „übersetzbar“ -Dateien.

Die Möglichkeit, sie direkt zu erhalten, wie zum Tauchen in den src / Ordner Gegensatz ist ein Plus. Und es in der POM definiert, so dass es auf diese Weise bedeutet eingerichtet wird Ich muss nicht halten manuell hinzufügen den Ordner jedes Mal, wenn ich laufen Eclipse. Finsternis

Um Nestors Punkt, kein Scherz. Es ist eine End-to-End-Entwicklungsumgebung und nicht nur ein Compiler. Es ist als Schnittstelle für alle Quell Artefakte soll einen Build von JSP beitragen Konfiguration wie POM-Dateien zu erstellen. Warum sollte Eclipse einmal die Mühe Editoren XML und JSP, die, wenn diese nicht-able kompilieren? --Which durch die Art und Weise, sind super-geeignet.

Die Maven-Plugin für Eclipse (oder umgekehrt) ist grandios, weil es die .classpath baut, .project und andere Konfiguration sofort beginnen, benötigte mit Maven-Projekten in Eclipse arbeiten. jedes Mal, jedoch wird die Eklipse Config erzeugt (d.h. MVN Eklipse: Eclipse), nicht unterstützte Verzeichnisse müssen manuell hinzugefügt werden. Das ist ein großer saugen.

Die Tatsache, dass dieser Plugins die Möglichkeit, vernachlässigt die IDE leicht fügen Sie neue Quellordner sichtbar von innen ist mir ein Rätsel. Ein Maven / Eclipse-Plugin-Projektseite sogar zitiert Umgehungen für die Herstellung dieser Quellen vorübergehend zur Verfügung, indem sie die Projekttypen Schalten und täuscht das Plugin - natürlich müssen Sie es ändern zurück sofort oder beschädigt die Build

.

Warum schaffen sie nicht nur die Fähigkeit, selbstständig die Quelle Erklärungen in .classpath zu steuern ???

fand ich einen ganz anderen Grund für das gleiche Problem, das ich mit Blick auf war - ich würde nicht src / main / webapp im Paket-Explorer sehen.

Es stellte sich heraus es nichts mit entweder POM oder mit Eclipse zu tun hatte (mit Springsource Suite 3.5.0) in der Lage Maven Projekt zu laden.

Das Problem war, dass in meinem src / main / webapp / Scripts / Ordner gab es .git und .gitignore Dateien. Ich vermute, dass möglicherweise von Eclipse nicht in der Lage war, mit Dateinamen zu behandeln begining ein „“ in dem Webapp Ordner. Getestet habe ich diese Theorie über mehrere Projekte und es scheint, Boden so weit zu halten.

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top