Für ein Projekt bei der Arbeit erwägen wir, das Maven-Plugin für Eclipse zu verwenden, um unsere Builds zu automatisieren. Im Moment ist das Verfahren weitaus komplizierter als es eigentlich sein sollte, und wir hoffen, dass Maven die Dinge mit einem Klick vereinfachen wird.
Meine Frage ist, gibt es einen Assistenten oder einen automatischen Importer zum Konvertieren eines vorhandenen Eclipse Java-Projekts in ein Maven-Projekt mithilfe des Maven-Plugins? Oder sollte ich ein neues Maven-Projekt erstellen und alle Quelldateien, Bibliotheken usw. manuell kopieren?
Antworten:
Wenn Sie nur ein Standard-POM erstellen und die m2eclipse-Funktionen aktivieren möchten: Ich gehe davon aus, dass Sie derzeit kein alternatives automatisiertes Build-Setup haben, das Sie importieren möchten, und ich gehe davon aus, dass Sie über das m2eclipse-Plugin sprechen.
Das m2eclipse-Plugin bietet eine Rechtsklickoption für ein Projekt, um diese Standard-pom.xml hinzuzufügen:
Neuere M2E-Versionen
Klicken Sie mit der rechten Maustaste auf Projekt -> Untermenü Konfigurieren -> In Maven-Projekt konvertieren
Ältere M2E-Versionen
Klicken Sie mit der rechten Maustaste auf Projekt -> Untermenü Maven -> Abhängigkeitsverwaltung aktivieren.
Das wird das Notwendige tun, um das Plugin für dieses Projekt zu aktivieren.
Um zu antworten, gibt es einen automatischen Importeur oder Assistenten? ': nicht, dass ich davon Wüste. Mit der obigen Option können Sie das m2eclipse-Plugin für Ihr vorhandenes Projekt aktivieren und das manuelle Kopieren vermeiden. Sie müssen weiterhin die Abhängigkeiten und andere Dinge einrichten, die Sie selbst erstellen müssen.
quelle
Ab m2e 0.13.0 (falls nicht früher als) können Sie ein Java-Projekt über das Kontextmenü in ein Maven-Projekt konvertieren. Hier ist, wie:
Hier sind die detaillierten Schritte mit Screenshots.
quelle
Ich hatte das gleiche Problem und wollte den gesamten Eclipse-Arbeitsbereich mit etwa 60 Eclipse-Projekten mavenisieren. Dies manuell zu tun, erforderte viel Zeit und alternative Optionen waren nicht so realisierbar. Um das Problem zu lösen, habe ich endlich ein Projekt namens Eclipse-to-Maven auf Github erstellt. Da Eclipse nicht über alle erforderlichen Informationen zu den Abhängigkeiten verfügt, führt es Folgendes aus:
Basierend auf
<classpathentry/>
XML-Elementen in der .classpath-Datei werden die Abhängigkeiten von einem anderen Projekt erstellt, die JAR-Datei der Bibliothek identifiziert und anhand ihres Namens (z. B. jakarta-oro-2.0.8.jar) die Version identifiziert. DerzeitartifactId
undgroupId
sind die gleichen, als ich etwas nicht finden konnte, das mir die Maven-Gruppen-ID der Abhängigkeit basierend auf zurückgeben könnteartifactId
. Obwohl dies keine perfekte Lösung ist, bietet es einen guten Grund, um die Mavenisierung zu beschleunigen.Es verschiebt alle Quellordner gemäß der Maven-Konvention (wie
src/main/java
)Da Eclipse-Projekte mit Namen mit Leerzeichen in einer Linux / Unix-Umgebung nur schwer zu verarbeiten sind, werden sie auch mit Namen ohne Leerzeichen umbenannt.
Die resultierenden pom.xml-Dateien enthalten die Abhängigkeiten und die grundlegende Pom-Struktur. Sie müssen die erforderlichen Maven-Plugins manuell hinzufügen.
quelle
.classpath
und.project
Dateien)? Können Sie Ihrer Antwort hinzufügen, wie Sie mit Ihrem Plugin ein einfaches JavaSE-Projekt mavenisieren - und wie würden sich die Verzeichnisstrukturen tatsächlich ändern?Klicken Sie mit der rechten Maustaste auf den Projektnamen> Konfigurieren> In Maven-Projekt konvertieren> klicken Sie auf Fertig stellen. Hier fügen Sie einige Abhängigkeiten zum Herunterladen hinzu und fügen Ihre erwartete JAR-Datei hinzu.
Dadurch wird eine automatisch generierte Datei pom.xml erstellt. Öffnen Sie diese Datei im XML-Format in Ihrem Eclipse-Editor.
</build>
Fügen Sie nach dem Erstellen von tag ( ) Ihre Abhängigkeiten hinzu, die Sie von der maven-Website kopieren können, und fügen Sie sie dort hinzu. Jetzt können Sie loslegen. Diese Abhängigkeiten fügen automatisch Ihre erforderlichen JAR-Dateien hinzu.quelle
Chengdongs Antwort ist richtig, sollten Sie verwenden
Configure>Convert to Maven Project
. Ich muss jedoch hinzufügen, dass der Konvertierungsprozess erheblich verbessert wurde, da m2e 0.13.0: m2e 1.1+ und m2e-wtp 0.16.0+ jetzt die vorhandenen Eclipse-Einstellungen in die Maven-Plugin-Konfiguration konvertieren können .In Bezug auf die Abhängigkeitskonvertierung können Sie die JBoss Tools (JBT) 4.0 Maven-Integrationsfunktion ausprobieren, die einen experimentellen Konvertierungsassistenten enthält, der in den Konvertierungsprozess von m2e integriert ist: http://docs.jboss.org/tools/whatsnew/maven/ maven-news-4.0.0.Beta1.html .
Es gibt nicht vor, die ultimative Lösung zu sein (nichts kann es), es sollte wesentlich dazu beitragen, Ihren Maven-Konvertierungsprozess zu starten.
Außerdem, zu Ihrer Information , hier sind einige Ideen, um den Konvertierungsprozess von m2e zu verbessern. Das Refactoring zur Verwendung eines Maven-Layouts wird höchstwahrscheinlich in Zukunft implementiert.
JBT 4.0 (erfordert Eclipse JavaEE Juno) kann von http://download.jboss.org/jbosstools/updates/stable/juno/ oder vom Eclipse Marketplace installiert werden
quelle
Dies ist notwendig, da es sich beim Importieren eines Projekts aus git mehr oder weniger nicht um ein Maven-Projekt handelt, sodass sich die Maven-Abhängigkeiten nicht im Erstellungspfad befinden.
Folgendes habe ich getan, um aus einem allgemeinen Projekt ein Maven-Projekt zu machen.
Allgemeines Projekt -> Java-Projekt Klicken Sie mit der rechten Maustaste auf das Projekt, Eigenschaften-> Projektfacetten, klicken Sie auf "Java". Dieser Schritt verwandelt ein allgemeines Projekt in ein Java-Projekt.
Java-Projekt -> Maven-Projekt Rechtsklick auf Projekt, konfigurieren -> In Maven-Projekt konvertieren Derzeit befinden sich die Maven-Abhängigkeiten lib noch nicht im Erstellungspfad. Projekteigenschaften, Erstellungspfad , Bibliothek hinzufügen, Maven-Abhängigkeiten hinzufügen lib
Und warten Sie ein paar Sekunden, wenn die Abhängigkeiten geladen sind, ist das Projekt fertig!
quelle
Es gibt ein Befehlszeilenprogramm zum Konvertieren eines Java-Projekts in ein SBT / Maven-Projekt.
Es löst alle Jars auf und versucht, die richtige Version basierend auf der SHA-Prüfsumme, dem Klassenpfad oder dem Dateinamen herauszufinden. Anschließend wird versucht, die Quellen zu kompilieren, bis eine funktionierende Konfiguration gefunden wird. Benutzerdefinierte Aufgaben, die pro Abhängigkeitskonfiguration ausgeführt werden sollen, können ebenfalls angegeben werden.
https://bitbucket.org/mnyx/universalresolver
quelle
Soweit ich weiß, gibt es nichts, was ein Eclipse-Projekt automatisch in ein Maven-Projekt konvertieren könnte (dh das Layout ändern, ein POM erstellen, "generieren" und mit Metadaten füttern, Bibliotheken und deren Versionen erkennen, um sie dem POM hinzuzufügen , etc). Eclipse verfügt einfach nicht über genügend Metadaten, um dies zu ermöglichen (genau das ist der Punkt des POM) und / oder um ein anständiges Ergebnis zu erzielen.
Das wäre meiner Meinung nach die beste Option. Erstellen Sie ein Maven-Projekt, kopieren / verschieben Sie Quellen, Ressourcen, Tests, testen Sie Ressourcen in ihre jeweiligen Verzeichnisse, deklarieren Sie Abhängigkeiten usw.
quelle
Für die Konvertierung in Gradle ist analog zu Maven:
Klicken Sie mit der rechten Maustaste auf Projekt -> Untermenü Konfigurieren -> In Gradle (STS) -Projekt konvertieren
quelle