2013-01-04 18 views
57

Bu gerçekten basit bir soru ve muhtemelen bilmediğim bir yer var, ancak Google bu soru için özellikle yararsızdır, derleme hatalarıyla ilgili sonuçlar verir, nasıl yapılır derleme hata mesajlarını değiştir.maven "sembol bulamıyor" iletisi yararsız

[HATA] /path/to/source/Main.java:[13,8] hata: bulamıyor şöyle

Ben maven ile projemi oluştururken, bana kabaca biçimlendirilmiş hata iletileri verecek sembol

Karınca veya javak ile oluşturduğumda, aslında bana hata iletisinde bulamadığı sembolü söyleyecektir. maven bana bir satır numarası ve karakter konumu verir, ancak gerçek sembolü göstermek daha yararlı olur. Yukarıdaki satır, "sembol bulamıyor" hatalarının her biri için verilen tek satırdır. Sembol veren yukarı veya aşağı hiçbir çizgi yoktur. Bu bilgiyi bana anlatacak maven almanın bir yolu olmalı diye düşünüyorum, ama ne olduğunu bilmiyorum. -e seçeneği denedim, çünkü mvn onu kullanmayı denememi istedi, ama gerçek sembol için değil, hata için bir maven geri bildirimi verdi.

Herhangi bir yardım? İşte

MVN'nin version

Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400) 
Maven home: /usr/share/maven 
Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix" 

çıkışı var Ve burada tam olarak maven tarafından çıktı olarak (sadece dizinleri kısaltılmış ile), bir örnek (yararsız) hata mesajı yok:

[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /path/to/source/SoundEngineFilePanel.java:[33,8] error: cannot find symbol 
[ERROR] class SoundEngineFilePanel 
/path/to/source/SoundEngineFilePanel.java:[36,8] error: cannot find symbol 
[INFO] 2 errors 
[INFO] ------------------------------------------------------------- 

sembolleri Bulamaz "FakeThing" ve "fakeThing2", SoundEngineFilePanel değil.

+0

bazı sürüm bilgilerini (özellikle Maven) vb sağlayabilir yardımcı olabilir, bu tür ilk bağımlı projeleri oluşturmayı deneyin? Bu benim için olan değil. –

+1

... ve daha fazla hata çıkışı. Önceki veya sonraki satırda eksik sembolün belirtildiğinden eminim! –

+0

Daha fazla bilgi sağladı. – mattg

cevap

35

Bu, JDK7 I ile ilgili Maven derleyici eklentisinde bug'dur. JDK6 ile iyi çalışıyor.

+4

maven-compiler-plugin 3.1'de sabitlenmiş gibi görünüyor. [George-papatheodorou] konusuna bakın (http://stackoverflow.com/users/1570793/george-papatheodorou). –

+0

Bu bir çözüm değil .. hala java 8 derleme hatası oluyor. – Eta

1

Bu Maven'in bir işlevi değildir; derleyicinin bir işlevi. Yakından bak; Aradığınız bilgi büyük olasılıkla aşağıdaki satırdadır.

+4

Hayır, bu o değil. Soruyu düzenledim. – mattg

+0

Aynı hatayı alıyorum. Sonraki hata, projeden eksik olan bağımlılığın adını verdi (bu durumda bir org.apache.poi.xssf kitaplığı sınıfı). – John

0

Derhal, derleyici geçersiz bir ek açıklamadan şikayet ediyor. Eclipse'in, bir dizinin sonunda bir ek açıklamadaki virgül gibi tüm hataları göstermediğini fark ettim. Ancak standart javac yapar.

+0

Şikayet ettiği çizgi 'fakeThing = new JPanel()' dır. Javac'ın "fakeThing" için göstereceği standart bir "sembolü bulamıyor" hatası. maven sadece göstermiyor. – mattg

29

güncelleme 3.1 için:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
    </configuration> 
</plugin> 
+0

Bu eklentinin en son sürümünü belirlemenin en iyi yolu nedir? Tüm bu bulabildiğim sayfa: http://maven.apache.org/plugins/maven-compiler-plugin/source-repository.html Teşekkürler. –

+1

http://maven.apache.org/plugins/index.html –

2

Hatta Java 7 kullanıyorum, maven 2.2.1 ve aynı hatayı başlamıştı, benim pom gelen <scope>tests</scope> kaldırıldı ve başarılı bir şekilde inşa etmek

mvn clean -DskipTests=true install

kullanılan benim projeleri, maven versiyonumu yükseltmeden.

+0

"mvn clean -DskipTests = true" kurulum sihirli bir komuttur! Paylaşım için teşekkürler. (BTW testlerime dokunmadım) – Eta

3

Aynı problem vardı.nedeni iki JAR dosyaları Maven bağımlılık yoluyla eklenmedi vardı, bu yüzden mvn compile çalıştırdığınızda, konsol hata hata görüntüler:

Symbol cannot be found,Class...".

düzeltmek için:

  1. JAR kaldır inşa yolundan dosyaları
  2. patikayı
  3. Run mvn compile
3

I kurmak ekle Benim durumumda, yeni bir sınıf eklediğimden beri yeniden yapılandırılmayan bir çocuk kavanozu vardı, o çocuk kavanozu pom.xml, çocuk-ebeveyn ilişkisi olarak benim başarısız pom.xml'im ile alakalı değildi (<parent> etiketi kullanarak) . Bu yüzden hatadan sonra çocuk kavanozunu yeniden oluşturdum. Bir Maven bir proje üzerinde yüklemek çalıştırmak çalışırken

+0

Bu benim de sorunumdu. Maven'de kesinlikle var olan hatalar olsa da, çoğu durumda, Maven hataları veya yapı sorunları bu gibi senaryolar ile açıklanacaktır. –

0

Eclipse STS da benzer bir problem başlamıştı. Bu proje için pom.xml dosyasının bağımlılıkları ve bu bağımlılıkların işaret ettiği projelerdeki bazı sürümleri değiştirdim. Değiştirdiğim tüm projelere bir Maven yüklemesi yaparak ve daha sonra yeniden yüklemeye devam ederek çözdüm.

0

Maven ile aynı sorunu yaşadım. Sorunum, maven, differenc vaka isimleriyle klasörleri oluşturuyordu. Bir .service.MyFile bekliyordum ama hedef klasörde Service/MyFile ve java bir durumda duyarlıdır. Öğrenmek birkaç saatimi aldı, kontrol etmenizi tavsiye ederim.

0

ÇÖZÜM: @ Bileşeninizi oluşturmadan önce (mvn temiz yüklemesini kullanarak). Tüm projeyi bir kez oluşturun ve bileşeninizi yeniden oluşturun.

NEDENİYLE? Bu hata birçok kez hata alıyorum. Çoğu zaman bileşenimi tek başına oluşturmaya çalışacağım (Başka yerde değişiklik yapmadığım için).

Yeni indirilen verilmiş fazladan kavanoz (kendi bileşeni içinde) bir üçüncü şahıs tarafından yapılan değişikliklerden etkilemiş olabilir Sağ, Ama bu. Eğer çalışma alanı diğer bazı proje üzerinde bağımlılık yaşıyorsanız ve bu projelerin düzgün inşa değilse tüm proje üzerinde temiz yüklemek tam bir mvn bana defalarca

0

kurtardı yapma, böyle hata gelebilir. o