2013-08-15 12 views
7

Tło:Maven java kompilacji błąd nie może uzyskać dostępu CommonClassA

  • Zajmuję Maven projekt modułu wielo.
  • Jeden z modułów jest wspólnym modułem wymaganym przez inne moduły.
  • Ten moduł zawiera CommonClassA.java.
  • wspólny moduł jest poprawnie skompilowany.
  • Jest poprawnie zainstalowany w lokalnym repozytorium maven.
  • Jedna z klas (Billtype.java) w innym module (EmployeeBilling) odnosi się do tej klasy (CommonClassA.java).
  • Zależność Maven dla wspólnego modułu jest poprawnie określona w pom.xml modułu EmployeeBilling.

Problem:

Podczas kompilowania EmployeeBilling moduł zgłasza

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project EmployeeBilling: Compilation failure 
[ERROR] \MyWorkspace\Biz\EmployeeBilling\src\main\java\com\employee\Billtype.java:[79,19] error: cannot access CommonClassA 
[ERROR] -> [Help 1]** 

szczegóły drugoplanowy:

  • zależność zdefiniowane w EmployeeBilling> pom.xml:

  • Inne zajęcia od wspólnego modułu wydaje dostępny jako błąd nie obserwowano

  • Nie istnieją żadne inne błędy, takie jak klasa nie znaleziono/nie znaleziono pliku.
  • Klasa CommonCLassA implementuje Serializable
  • sam błąd występuje od Eclipse jak commond linii
  • Używam plugin M2E

Narzędzia:

  • jdk1.7.0_02
  • OS: Windows 7
  • E clipse JUNO i apache-maven-3.1.0

Z góry dziękuję!

+1

Być może głupie pytanie, ale czy klasa "CommonClassA'' publiczna'? – DB5

+1

Uruchom kompilację w trybie debugowania za pomocą '-X' jak:' mvn compile -X', aby uzyskać więcej szczegółów. Jesteś także pewien, że modyfikatory dostępu dla klasy sprawiają, że jest on widoczny? –

+0

Sugeruję dodanie źródeł twoich plików, ponieważ wydaje się, że jest to zwykły błąd kompilacji. – sorencito

Odpowiedz

3

Jeśli projekt jest poprawnie kompilowany za pomocą kompilatora Eclipse, powinien działać z Maven.

kilka rzeczy do sprawdzenia, czy jej nie działa z Maven:

  1. ręcznie sprawdzić w repozytorium, że słoik jest prawidłowo zainstalowana i zawiera plik klasy.
  2. Spróbuj zbudować projekt przy użyciu zainstalowanego lokalnie Maven zamiast maven w Eclipse.
  3. Ustaw -DskipTest = true podczas instalacji twojego słoika, ponieważ może to czasami powodować problemy.

Jeśli te czynności nie działają, pokaż nam swoją pom.

+0

Wszystko, dzięki za odpowiedź! – user2210293

0

Brak dodatkowych informacji sprawia, że ​​trudno jest znaleźć przyczynę. Ale miałem też te problemy od czasu do czasu i są pewne rzeczy, które mogą pójść nie tak:

  • Czy używasz odpowiedniej wersji JAVA (wszędzie)?
  • ... i prawą java PROVIDER? (Oracle, IBM, OpenJDK) W moim przypadku często jest to numer, czasami jestem związany z IBM JDK, chociaż staram się używać Oracle tam, gdzie mogę i to czasami psuje moją kompilację.
  • Czy używana jest prawidłowa wersja zależności WORD? Jeśli polegasz na nim wiele razy i wszystkie w tym samym (niższym niż root) katalogu zależności, Maven po prostu "wybierze" wersję. Możliwe, że ta wersja jest niekompatybilna z kodem tej konkretnej zależności.
  • Pomijanie testów czasami DZIAŁA! Ma to coś wspólnego z fazami maven i przygotowywaniem rzeczy do użycia w innym miejscu.

Powodzenia :)

+2

Nie zapewnia to odpowiedzi na pytanie. Po uzyskaniu wystarczającego [reputation] (http://stackoverflow.com/help/whats-reputation) będziesz mógł [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/13075824) – Inian

+0

Jeśli tak mówisz ... Tylko moje doświadczenie, wczoraj miałem TAK konkretny błąd kompilacji i po zmianie JAVA_HOME z Oracle JDK na IBM JDK dostałem problem został rozwiązany. Ale jeśli powiesz, że nie, to prawdopodobnie wiesz o wiele lepiej. Gdzie jest twoja odpowiedź, Inian? –

0

miałem ten sam problem. Nawet zależność słoika ma wymagane pliki klas. W końcu usunąłem lokalne repozytorium maven i zrestartowałem kompilację. Teraz działało bez żadnego problemu.