IntelliJ IDEA kullanarak bir JUnit testi çalıştırırken,
Bunu nasıl düzeltebilirim?
- SDK 1.7'yi kullanma
- Modül dil seviyesi 1.7
Maven inşa iyi çalışıyor. (Bu yüzden bu IDEA yapılandırma sorununa inanıyorum)
IntelliJ IDEA kullanarak bir JUnit testi çalıştırırken,
Bunu nasıl düzeltebilirim?
Maven inşa iyi çalışıyor. (Bu yüzden bu IDEA yapılandırma sorununa inanıyorum)
Yanıtlar:
Büyük olasılıkla Maven'den içe aktarılan yanlış derleyici seçenekleriniz var:
Ayrıca ekran görüntüsünde belirtilen proje ve modül bayt kodu ( hedef ) sürüm ayarlarını kontrol edin .
Kaynak dil seviyesinin yapılandırıldığı diğer yerler :
Maven varsayılan dil seviyesi olan 1.5 (5.0), yukarıdaki ekran üzerinde Modül dil seviyesi olarak bu sürümü görür.
Bu, içindeki maven-derleyici-eklenti yapılandırması kullanılarak değiştirilebilir pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
veya
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
Maven Projeleri araç penceresinde Maven projesini yeniden içe aktardıktan sonra IntelliJ IDEA bu ayara saygı gösterecektir :
pom.xml
java derleyici eklenti yapılandırmanız pom.xml dosyasında (otomatik yeniden içe aktarma etkinleştirildiyse) bir sonraki değişiklikinizde veya projeyi manuel olarak yeniden içe aktardığınızda bu ayarı geçersiz kılacak Java sürümünü belirtebilir.
Aşağıda IntelliJ 13 ve 14 için tartışılana benzer, ancak Ayarlar / Tercihler panelinde fazladan bir düzey vardır: Ayarlar > Derleme, Yürütme, Dağıtım > Derleyici > Java Derleyici .
IntelliJ 13 ve 14'te, modülünüzde farklı bir bayt kodu sürümü hedeflemediğinizden emin olmak için Ayarlar> Derleyici> Java Derleyici Kullanıcı Arayüzüne bakın.
In IntelliJ IDEA 14.1 "Hedef baytkodu versiyonu" farklı bir yerde olduğunu.
Aşağıdaki değişiklik benim için çalıştı:
Dosya> Ayarlar ...> Derleme, Yürütme, Dağıtım> Derleyici> Java Derleyici : Hedef bayt kodu sürümünü 1.5'den 1.8'e değiştir
Yapı yapılandırmanıza baktınız mı, maven 3 ve JDK 7 kullanıyorsanız böyle olmalı
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
Buna girdim ve düzeltme Proje Ayarları> Modüller'e gitmekti> belirli modül> Bağımlılıklar sekmesine tıklayın. Modül SDK'nın hala 1.6 olarak ayarlandığını fark ettim, 1.7 olarak değiştirdim ve işe yaradı.
Projenin derleyici ayar dosyasını aşağıdaki yolda değiştirin ve 'hedef'i 1.7 olarak değiştirin:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
Alanı boş olarak ayarlayarak çözdüm:
Ayarlar> Derleyici> Java Derleyici> Proje bayt kodu sürümü
IntelliJ bundan sonra JDK varsayılan sürümünü kullanır.
Bir andan diğerine bu hatayı net bir neden olmadan aldım. Derleyici / modül vb. Her türlü ayarı değiştirdim. Ama sonunda Maven projesini yeniden içe aktararak IntelliJ projesini yeniden oluşturdum ve sorun çözüldü. Bence bu bir hata.
IntelliJ 12 129.961
IntelliJ IDEA 14'ten v14.1'e küçük bir yükseltmeden sonra bunu vurdum. Benim için üst / üst pom düzenlemesini değiştirmek yardımcı oldu ve sonra Maven'i yeniden içe aktardı (otomatik değilse).
Ancak modül (ler) / toplanmış / ana modül ve Maven -> Reimport'a sağ tıklamak yeterli olabilir.
Bir Gradle projesiyse, build.gradle dosyanızda aşağıdaki ayarları arayın:
sourceCompatibility = "xx"
targetCompatibility = "xx"
Tüm alt nesneler için kök build.gradle dosyanıza şunu koyabilirsiniz:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Fikir> Ayarlar'da dil düzeylerini manuel olarak ayarlayabilmenize rağmen, bir Gradle projesiyse, Idea modül .iml dosyalarını Gradle ayarlarından otomatik olarak senkronize eder (Idea 15+ ile test edilir). Böylece sınıf yenilendiğinde tüm manuel değişiklikleriniz geçersiz kılınır.
Gradle belgelerine dayanarak, bunlar ayarlanmamışsa, geçerli JVM yapılandırması kullanılır.
Bu hatayla karşılaşmanın başka bir yolunu buldum. Dizin yapınızı yeniden düzenlediyseniz ve pomlarınızdan biri artık javac'ı yapılandırmayan eski ebeveyne işaret ediyorsa (bu yapılandırma orta seviyeye taşındığı için) alabilirsiniz. Bu durumda, üst seviye varsayılan olarak 1.5'tir ve hatalı çalışan alt seviye pom onu devralır.
Bu hatayı gördüğünüzde kontrol etmeniz gereken başka bir şey de pom yapınızın dizin yapınızla düzgün eşleşmesidir.
Maven derlemesi iyi çalışıyorsa, Maven ve IntelliJ IDEA projelerinin yapısını senkronize etmeyi deneyin.
In Maven aracı penceresinde , yenile düğmesini tıklayın . Bu düğmeye basıldığında IntelliJ IDEA, Maven aracı penceresinde proje yapısını ayrıştırır.
Maven senkronizasyonu özelliği bazen bozulabileceğinden, EAP derlemesi kullanıyorsanız bunun işe yaramayabileceğini unutmayın.
Doğru bağımlılığın seçildiğinden emin olun. Dosya> Proje Yapısı
Projenizi seçin ve Bağımlılıklar sekmesine gidin. Açılır menüden doğru bağımlılığı seçin veya yeni oluşturun.
Önceki tüm çözümler sizin için işe yaramadıysa (bu benim durumumdu), intellij yapılandırma dosyalarını silebilirsiniz:
Intellij daha sonra yenilerini üretecek. Ancak, dikkatli olun, bu aynı zamanda projet üzerinde yapılan tüm intellij konfigürasyonunu da silecektir (yani: hata ayıklama modunun konfigürasyonu, ...)