2012-03-13 28 views
7

Mam projekt Maven. Kiedy próbuję zbudować go z Maven, otrzymuję ten błąd:Maven "plik klasy dla ... nie znaleziono" błąd kompilacji

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2. 
    3.2:compile (default-compile) on project myProject: Compilation failure: 
    Compilation failure: 
[ERROR] ClassA.java:[32,38] cannot access ClassB 
[ERROR] class file for ClassB not found 

ClassB jest wewnątrz innego artefaktu, i że artefakt jest w lokalnym repozytorium. W rzeczywistości nie mam problemów z budowaniem tego projektu za pomocą wtyczki m2eclipse Maven. Dopiero po uruchomieniu mvn compile kompilacja się nie powiedzie.

Co muszę zrobić, aby budować z wiersza poleceń?

Odpowiedz

1

Eclipse może ominąć twoje zależności pom i "pomóc" ci przez znalezienie zależności, która nie jest w twojej pom. Następnie, po uruchomieniu z linii poleceń, eclipse nie jest już po to, by ci pomóc. Dokładnie sprawdziłbym twoją pom, że wyraźnie podajesz zależność. Aby uzyskać więcej informacji, możesz również wypróbować

mvn dependency:analyze 

.

+0

Zależność jest poprawnie zdefiniowany w pom – ade

+0

opublikowania swojej plik pom.xml i SRC drzewo pomogłoby (komenda drzewo Linux) –

+0

miałem ten sam problem po jakimś kompilacja problemów podczas pełnej instalacji 'mvn clean install'. Problem polegał na tym, że Eclipse rozwiązuje problem z własnego obszaru roboczego, ale maven musiał pracować z niekompletnym lub wadliwym lokalnym repozytorium. Rozwiązanie: ponownie wykonaj instalację 'mvn clean install 'w pełnym projekcie (z wiersza poleceń), która zgodnie z m2eclipse nie przyniesie błędów w kompilacji powyżej – krevelen

1

Wygląda na to, że zdefiniowałeś zwykłą klasę w src/test/java zamiast w obszarze src/main/java, co czasami jest przyczyną problemu, który powoduje, że rzeczy z zaćmienia działają trochę inaczej.

-2

dodatek do pom.xml:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
       <compilerArguments> 
        <extdirs>src\main\webapp\WEB-INF\lib</extdirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

Jak myślisz, dlaczego to mogłoby pomóc? – dunni

Powiązane problemy