W przypadku projektu w pracy rozważamy użycie wtyczki Maven dla Eclipse do automatyzacji naszych kompilacji. W tej chwili procedura jest o wiele bardziej skomplikowana, niż powinna być, i mamy nadzieję, że Maven uprości wszystko do kompilacji jednym kliknięciem.
Moje pytanie brzmi: czy istnieje kreator lub automatyczny importer do konwersji istniejącego projektu Java Eclipse na projekt Maven przy użyciu wtyczki Maven? A może powinienem utworzyć nowy projekt Maven i ręcznie skopiować wszystkie pliki źródłowe, biblioteki lib itp.
Odpowiedzi:
Jeśli chcesz tylko utworzyć domyślną POM i włączyć funkcje m2eclipse: zakładam, że nie masz obecnie alternatywnej automatycznej konfiguracji kompilacji, którą próbujesz zaimportować, i zakładam, że mówisz o wtyczce m2eclipse.
Wtyczka m2eclipse zapewnia opcję kliknięcia prawym przyciskiem myszy projektu, aby dodać tę domyślną pom.xml:
Nowsze wersje M2E
Kliknij prawym przyciskiem myszy Projekt -> podmenu Konfiguruj -> Konwertuj na Projekt Maven
Starsze wersje M2E
Kliknij prawym przyciskiem myszy Projekt -> podmenu Maven -> Włącz zarządzanie zależnościami.
To wystarczy, aby włączyć wtyczkę dla tego projektu.
Aby odpowiedzieć ” czy istnieje automatyczny importer lub kreator? ': nie żebym o tym wiedział. Użycie powyższej opcji pozwoli włączyć wtyczkę m2eclipse dla istniejącego projektu, unikając ręcznego kopiowania. Nadal będziesz musiał skonfigurować zależności i inne rzeczy, które musisz sam zbudować.
źródło
Zacznij od m2e 0.13.0 (jeśli nie wcześniej niż), możesz przekonwertować projekt Java na projekt Maven z menu kontekstowego. Oto jak:
Oto szczegółowe kroki ze zrzutami ekranu.
źródło
Miałem ten sam problem i chciałem Mavenise cały obszar roboczy Eclipse zawierający około 60 projektów Eclipse. Wykonanie tego ręcznie wymagało dużo czasu, a alternatywne opcje nie były tak opłacalne. Aby rozwiązać problem, w końcu stworzyłem projekt o nazwie eclipse-to-maven na github. Ponieważ środowisko Eclipse nie ma wszystkich niezbędnych informacji o zależnościach, wykonuje następujące czynności:
Na podstawie
<classpathentry/>
elementów XML w pliku .classpath tworzy zależności od innego projektu, identyfikuje plik jar biblioteki i na podstawie jego nazwy (na przykład jakarta-oro-2.0.8.jar) identyfikuje jego wersję. ObecnieartifactId
igroupId
są takie same jak ja nie mógł znaleźć coś, co mogłoby zwrócić mi Maven GroupID w oparciu o zależnośćartifactId
. Chociaż nie jest to idealne rozwiązanie, stanowi dobrą podstawę do przyspieszenia procesu wulkanizacji.Przenosi wszystkie foldery źródłowe zgodnie z konwencją Maven (jak
src/main/java
)Ponieważ projekty Eclipse o nazwach ze spacjami są trudne w środowisku Linux / Unix, zmienia je również na nazwy bez spacji.
Wynikowe pliki pom.xml zawierają zależności i podstawową strukturę pom. Musisz ręcznie dodać wymagane wtyczki Maven.
źródło
.classpath
i.project
pliki)? Czy możesz dodać do swojej odpowiedzi, jak korzystać z wtyczki, aby uprościć prosty projekt JavaSE - i jakie byłyby rzeczywiste zmiany w strukturze katalogów?Kliknij prawym przyciskiem myszy nazwę projektu> Konfiguruj> Konwertuj na projekt Maven> kliknij Zakończ. Tutaj dodasz pewne zależności do pobrania i dodasz oczekiwany plik jar.
Spowoduje to utworzenie automatycznie generowanego pliku pom.xml. Otwórz ten plik w formacie xml w edytorze Eclipse. Po kompilacji tag (
</build>
) dodaj swoje zależności, które możesz skopiować ze strony maven i tam je dodać. Teraz możesz już iść. Te zależności automatycznie dodają wymagane pliki jar.źródło
Odpowiedź Chengdong jest poprawna, powinieneś użyć
Configure>Convert to Maven Project
. Jednak muszę dodać, że proces konwersji został znacznie ulepszony, ponieważ m2e 0.13.0: m2e 1.1+ i m2e-wtp 0.16.0+ mogą teraz konwertować istniejące ustawienia zaćmienia na konfigurację wtyczki maven .Jeśli chodzi o konwersję zależności, możesz wypróbować funkcję integracji JBoss Tools (JBT) 4.0 Maven, która zawiera eksperymentalny kreator konwersji podłączony do procesu konwersji m2e: http://docs.jboss.org/tools/whatsnew/maven/ maven-news-4.0.0.Beta1.html .
Nie udaje, że jest to najlepsze rozwiązanie (nic nie może), ponieważ powinno znacznie pomóc w rozruchu procesu konwersji Maven.
Ponadto, FYI, oto kilka pomysłów na usprawnienie procesu konwersji m2e , refaktoryzacja w celu użycia układu Maven najprawdopodobniej zostanie zaimplementowana w przyszłości.
JBT 4.0 (wymaga Eclipse JavaEE Juno) można zainstalować ze strony http://download.jboss.org/jbosstools/updates/stable/juno/ lub z Eclipse Marketplace
źródło
Jest to konieczne, ponieważ mniej więcej, kiedy importujemy projekt z git, nie jest to projekt maven, więc zależności maven nie znajdują się na ścieżce kompilacji.
Oto, co zrobiłem, aby zamienić ogólny projekt w projekt maven.
projekt ogólny -> projekt java kliknij prawym przyciskiem myszy projekt, właściwości-> aspekty projektu, kliknij „java”. Ten krok zamieni ogólny projekt w projekt Java.
projekt java -> projekt maven kliknij prawym przyciskiem myszy projekt, skonfiguruj -> przekonwertuj na projekt maven W tej chwili biblioteki zależności maven nadal nie znajdują się na ścieżce kompilacji. właściwości projektu, ścieżka kompilacji, dodaj bibliotekę, dodaj lib zależności zależności maven
I poczekaj kilka sekund, gdy załadowane zostaną zależności, projekt jest gotowy!
źródło
Istnieje program wiersza poleceń do konwersji dowolnego projektu Java na projekt SBT / Maven.
Rozwiązuje wszystkie słoiki i próbuje ustalić właściwą wersję na podstawie sumy kontrolnej SHA, ścieżki klasy lub nazwy pliku. Następnie próbuje skompilować źródła, dopóki nie znajdzie działającej konfiguracji. Można również podać niestandardowe zadania do wykonania według konfiguracji zależności.
https://bitbucket.org/mnyx/universalresolver
źródło
O ile mi wiadomo, nie ma nic, co mogłoby automatycznie przekształcić projekt Eclipse w projekt Maven (tj. Zmodyfikować układ, utworzyć POM, „wygenerować” i nakarmić go metadanymi, wykryć biblioteki i ich wersje, aby dodać je do POM itp.). Zaćmienie po prostu nie ma wystarczającej ilości metadanych, aby było to możliwe (jest to właśnie cel POM) i / lub aby uzyskać przyzwoity wynik.
Moim zdaniem byłaby to najlepsza opcja. Utwórz projekt Maven, skopiuj / przenieś źródła, zasoby, testy, przetestuj zasoby w odpowiednich katalogach, zadeklaruj zależności itp.
źródło
Konwersja na Gradle jest analogiczna do Maven:
Kliknij prawym przyciskiem myszy Projekt -> podmenu Konfiguruj -> Konwertuj na projekt Gradle (STS)
źródło