Maven plötzlich will src/ statt src/main/java
Bin ich mit Maven 3.3.3 zusammen mit Eclipse Mars und m2e. Gestern habe ich ein neues Java-Projekt und konvertiert es in ein Maven.
Danach im classpath enthalten nur src
anstelle des standard -src/main/java
. Ich war überrascht, aber ich kann einfach erstellt den fehlenden Ordner und lief m2e "Projekt Aktualisieren". Das hat das problem nicht lösen; m2e noch darauf bestanden, nur src
.
Also bearbeitete ich die classpath manuell bis zum Ende mit, die mit den üblichen
src/test/java
src/test/resources
src/main/java
src/main/resources
Wenn ich versuche m2e "Projekt Aktualisieren" nun, ich bekomme diese Fehlermeldung:
Cannot nest 'foo/src/test/java' inside 'foo/src'. To enable the nesting, exclude 'test/' from 'foo/src'
Seufzer ich ging in die Befehlszeile weiter und lief mvn eclipse:eclipse
um diese classpath:
src/test/java
src/test/resources
src
src/main/resources
Nun, ich bin völlig ratlos. Warum ist das passiert?
InformationsquelleAutor Aaron Digulla | 2015-12-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie Ihre POM POM-editor und klicken Sie auf die "Effektive POM" - Registerkarte. Suche für
sourceDirectory
. Sie werden wahrscheinlich so etwas wie dieses:Beim ersten konvertiert den Java-Projekt auf Maven, m2e versucht, den classpath der gleichen. Eclipse Java-Projekte haben ein anderes layout standardmäßig. Sie verwenden
src/
stattsrc/main/java/
. Es gibt keinen test-Ordner, da Eclipse-Projekte setzen in der Regel Ihre tests in ein anderes Projekt.Beheben Sie das Problem:
sourceDirectory
element aus der POM (Hinweis: Es kann sein, in einem übergeordneten POM).Der Fehler sollte nun Weg sein und der classpath korrekt sein sollten.
Dies hat hervorragend funktioniert, aber warum?
Wenn Sie das tun, dann ist das problem wird wieder sein, irgendwann.
Denn diese config-option erzählt, Eclipse, was den source-Ordner sein sollte.
nur weil ich bin nicht das Schärfste Werkzeug im Schuppen, der pom.xml tatsächlich sagen Sie Eclipse so konfigurieren Sie den build-path? Das ist eigentlich wirklich intelligent ist, und es löst eine MENGE Probleme, die ich derzeit habe mit Eclipse.
InformationsquelleAutor Aaron Digulla
Gibt es zwei Arten von Ordnern, die Sie erstellen können: 1) Verpackung 2) Quell-Ordner
1) Ein Paket sieht wie folgt aus
Um ein Paket zu erstellen, klicken Sie rechts auf den Ordner, den Sie möchten (in meinem Beispiel ich mit der rechten Maustaste auf das Java-Ressourcen) --> Neu --> Paket
Einem pop-up-Fenster, das sieht aus wie diese erscheinen soll
"Source folder:" das ist, wo Sie wählen Ihr Projekt. Wenn Sie nicht sehen, nichts gibt es, klicken Sie auf "Durchsuchen" und finden Sie Ihr Projekt. Wenn ich auf "Durchsuchen..." zeigt er das an:
"Name:" ist der name, den Sie geben Ihr Paket.
Hinweis: Pakete sollte innerhalb der Quell-Ordner. Source-Ordner des übergeordneten Ordners.
2) Quell-Ordner so Aussehen:
Erstellen Sie ein Quell-Ordner mit der rechten Maustaste auf den Ordner, den Sie möchten (in meinem Beispiel ich mit der rechten Maustaste auf das Java-Ressourcen) --> Neu --> Source Ordner
Unter "Project name:" schreiben Sie den Namen Ihres Projekts. Wenn Sie Hilfe benötigen, klicken Sie auf "Durchsuchen..."
Unter "Ordner-name:" schreiben Sie den Namen des Ordners, den Sie wollen.
Fehler: Wenn Sie versuchen, erstellen eine "src/main/resources" - Ordner und man wird in diese Fehlermeldung "Cannot nest 'Projektname' innen 'Projektname'. Aktivieren Sie die Verschachtelung ausschließen "main/" aus
Lösung:
InformationsquelleAutor Gene