2011-10-13 8 views
10

Mam dwa bardzo irytujące problemy z integracją Maven, Eclipse, od czasu do czasu wyłącza wszystkie swoje zasoby w src/main/zasobów i src/test/zasobów ze ścieżki kompilacji.Maven/M2Eclipse wyklucza moich zasobów cały czas

Gdybym wglądu „Właściwości >> Budowa ścieżki Java >> Źródło” Widzę, że te dwa foldery „Wyłączone: **”.

Problem można łatwo rozwiązać poprzez kliknięcie na „Usuń” na wykluczeń, ale to jest naprawdę, naprawdę frustrujące.

Konfiguracja projekt jest bardzo prosty, zawiera kilka modułów i sub-modułów, ale nic szczególnego. Nie mam żadnych opcji konfiguracyjnych w moim pom.xmls dotyczących zasobów, zaćmienia czy czegoś podobnego (może powinienem?).

Innym problemem jest to, że Eclipse cały czas publikuje ostrzeżenia w katalogach "docelowych" (w widoku "Problemy"), w których to nie powinno się w ogóle nosić.

Każda pomoc jest doceniana.

Dzięki jest zaliczka, Mark

Ps: SpringSource Narzędzie Suite 2.7.0.RELEASE, Maven Integration for Eclipse 0.12.1.20110112, Maven 2.2.1

+0

Czy rozwiązałeś problem? –

Odpowiedz

6

Jest to poprawne zachowanie. Obecna wersja M2E zapewnia swój własny wkład w proces automatycznej kompilacji wewnątrz Eclipse IDE. Ten proces kompilacji uwzględnia cykl życia maven dla generowania zasobów i zasobów procesowych itp., To jest, że w niektórych projektach są wtyczki generujące zasoby z konfiguracji i umieszczane w skompilowanym folderze wyjściowym.

Mechanizm patrzysz w Drodze budowy odnosi się jedynie do IDE Eclipse wbudowanych w mechanizm do kompilacji/montaż zestawu folderów źródłowych wejście do folderów wyjściowych. Jeśli zarówno Maven, jak i Eclipse to zrobili, pojawią się konflikty/problemy.

Jest ogniwem w M2E FAQ na temat tego punktu http://wiki.eclipse.org/M2E_FAQ#Why_resource_folders_in_Java_project_have_excluded.3D.22.2A.22

Jeśli rzeczywiście problemy z zasobów nie są kopiowane może możemy pracować przez dlaczego tak jest (ponieważ jest to inna sprawa), ale twoja główne pytanie dotyczy wspólnego punktu FAQ M2E.

Może chcesz zaktualizować system do wersji org.eclipse.m2e i Indigo, ponieważ wiele problemów związanych z kompleksem Maven ma zastosowanie/jest w większości rozwiązane lub ma wyjaśnione rozwiązanie.

.

Polecam wykonać "Uruchom jako -> Maven -> czysty", a następnie "Projekt -> Wyczyść", a następnie włączyć automatyczne bulding (aby umożliwić automatyczne budowanie oparte na Eclipse, nie należy używać polecenia Uruchom As -> Maven, aby zbudować, aby przetestować ten punkt). Teraz otwórz menedżera plików poza zaćmieniem i ręcznie sprawdź foldery wyjściowe dla zasobów, które nie zostały skopiowane. Powinieneś znaleźć, że oni są tam tak samo.

.

Zgadzam się z ostrzeżeniem (prawdopodobnie walidacji) na temat pozycji w katalogu target/** i podczas gdy Eclipse ma sposób na ręczne wykluczenie katalogu docelowego/** z walidacji, ta opcja nie pozostaje poza projektem czystym (kiedy katalog docelowy zostanie usunięty).

To trochę denerwujące, że zawsze trzeba czekać na sprawdzenie pozycji w dużym projekcie.

Może spróbuję sprawdzić, czy można utworzyć wtyczkę Maven Eclipse pod warunkiem wykonania tej czynności, tj. Powiązania z cyklem życia kompilacji i automatycznego zastosowania sprawdzania poprawności w folderze docelowym.

+0

Dziękuję bardzo za szczegółową odpowiedź. – nihilist84

+2

Nadal mam wykluczenie **, a ja nie mam żadnej odpowiedzi, jak to naprawić ... – blackuprise

+0

Wykluczenie **, jest poprawne i tak jak powinno być, oczywiście nie rozumiesz wyjaśnienia, dlaczego jest ono poprawne, proszę badania i przeczytaj ponownie. –

0

T_T nie jest dobrym rozwiązaniem. Zasoby nie są kopiowane bez aktualizacji:


maven resources: Faza zasobów oznaczona jako ignorowana w cyklach cyklu życia spowoduje ten problem.

Jak zauważył Miles, zaćmienie nie kopiuje zasobu, ponieważ zakłada, że ​​użytkownik zrobi to za Ciebie. Następnie, jeśli zasoby: faza zasobów, która wykonuje zadanie w maven, nie zostanie wykonana, w czasie wykonywania otrzymasz wyjątek pliku nieznaleziony.

to sprawdzić otwarte

Project-> Ustawienia-> maven-> Mapowanie cyklu

i zobaczyć czy zasobów: zasoby są oznaczone ignorowane lub nie.

rozwiązać to Windows-> Preference-> maven-> cyklu życia mapping-> Open Workspace cyklu życia mapowania metadanych

następnie zmienić

<action> 
    <ignore /> 
    </action> 

do

<action> 
    <execute /> 
    </action> 

bramką resources

załaduj ponownie metadane & update maven project

powinien rozwiązać problem.

+0

FWIW upewnij się, że zainstalujesz wtyczkę m2e dla wtyczki build-helper-maven? Czy nadal potrzebujesz powyższej odpowiedzi? Jak rozumiem, powoduje to, że wiele celów/wtyczek wpływających na ścieżkę klasy/budynku działa tak, jak powinno. –

Powiązane problemy