Używam Apache Maven do zarządzania moimi bibliotekami Java (jar) i niektórymi projektami, które używają bibliotek. Dla wygody używam mvn eclipse:eclipse
do generowania plików projektu Eclipse, które można zaimportować do przestrzeni roboczej Eclipse w celu edycji.Jak przekazać Mavenowi, aby uwzględnił zależność słoika, a nie katalog źródłowy podprojektu w Eclipse?
Problemy pojawiają się, gdy edytuję projekty główne i projekty Java w tym samym obszarze roboczym Eclipse. Oznacza to, że mvn eclipse:eclipse
zawiera zależność ścieżki src w pliku .classpath
, a nie zależność jar
zgodnie z oczekiwaniami.
Powiedz, że mam projekt Jave lib o nazwie mylib
. Odpowiedni plik JAR mylib.jar
został wdrożony w prywatnym repozytorium Maven prowadzonym przeze mnie. Aby użyć pliku mylib.jar w głównym projekcie, następująca zależność jest zawarta w pom.xml
.
<!-- pom.xml for the main project -->
<dependency>
<groupId>namespace.my</groupId>
<artifactId>mylib</artifactId>
<version>[1.0,)</version>
</dependency>
mvn compile
i mvn test
dzieło doskonałe, w którym mylib.jar
zostanie pobrana automatycznie z mojego repo. Jednak próbując mvn eclipse:eclipse
, znajduję wygenerowany plik .classpath
nie obejmuje zależność mylib.jar
zgodnie z oczekiwaniami. Zamiast tego zawiera katalog plików źródłowych dla mylib w następujący sposób.
<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>
Wydaje się, że odczytuje metadane Maven Eclipse i znajdzie myLib oraz główne coexits projekt w tym samym obszarze roboczym. Dlatego maven zawiera źródło mojego dobra. Cholerny. Jak mogę powiedzieć mavenowi, aby zignorował lokalne źródło projektu i po prostu umieścił plik jar?
Dlaczego don” t zamiast tego używasz wtyczki m2e Eclipse? –
Ponieważ wygodnie jest pisać polecenia w konsoli - kompilacja, testowanie, pakowanie odbywa się za pomocą jednego polecenia. Poza tym użyteczne segmenty konfiguracji w pom.xml można łatwo ponownie wykorzystać w innych projektach. Eclipse jest dobry, ale zbyt wiele menu i liczne wtyczki wyglądają na skomplikowane. –
Te dwa elementy niekoniecznie wzajemnie się wykluczają, nawet jeśli musiałbyś zrezygnować z wtyczki Maven Eclipse, aby użyć m2e. Uważam, że Eclipse jest wygodny do debugowania, a m2e gwarantuje, że proces budowania jest tak podobny, jak to tylko możliwe w Eclipse i poza nim. –