2011-08-11 20 views
28

Maven yapımızı çalıştırırken, ekibimin bir üyesi yürütülürken this hatası alıyor. Ancak, java -version'u komut satırından çalıştırdığımızda, Java 1.6.0_26'yı gösterir. Hata, Maven'in Java 5'i kullandığını çığlık gibi görünüyor.Java Maven'in hangi sürümünü kullanmak için kullandığını nasıl anlarım ve nasıl değiştiririm?

Maven'in hangi Java sürümünü kullandığını nasıl anlarım ve nasıl değiştiririm?

3 potansiyel önemli notlar:

  1. Bu
Maven 2.2.1 Kullanılması
  • java_home bir Java 1.6 JDK
  • olarak ayarlanır Eclipse eklentisi kullanarak değil, komut satırında yürütülür
  • +0

    JDK 1.6.0_26 kaynaklarınızı 1.5 ile derlemek için kullanılır. Bu mümkün! –

    +4

    eek! :("bu hata" bağlantısı – Barett

    cevap

    54

    mvn -version hangi çıktı verecek java kullanıyor. JAVA_HOME geçerli bir JDK dizinine ayarlandıysa ve Maven başka bir şey kullanıyorsa, büyük olasılıkla birileri Maven'in başlatılma şeklini değiştirdi.

    +1

    Kullanılacak Java'yı maven ile tanımlayabilirsiniz, iş parçacığına bakın: http: // stackoverflow.com/questions/18813828/why-maven-use-jdk-1-6-ama-benim-java-version-is-1-7 –

    7

    1.6 source ve target parametrelerini kullanmak için maven-compiler-plugin'u yapılandırmanız gerekir (varsayılan olarak 1.5'dir).

    Bu, projenizin üst pompasında <pluginManagment> bölümünde yapılan en iyi yöntemdir (ancak her projeye göre her zaman bunu yapılandırabilirsiniz).

    <build> 
    
        <pluginManagement> 
         <plugins> 
         <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-compiler-plugin</artifactId> 
          <version>2.3.2</version> 
          <configuration> 
          <source>1.6</source> 
          <target>1.6</target> 
    
          </configuration> 
         </plugin> 
         </plugins> 
        </pluginManagement> 
        </build> 
    
    1

    mvn -version derleyici Maven'in kullandığını söyler, bu nedenle bu sürümler kullanılacak için POM öncelikli değerler belirten sürece soruyu cevaplar.

    İşte pom.xml geçersiz kılmaları belirtmek için en kolay yolu şudur: Alternatif

    <properties> 
        <maven.compiler.target>1.9</maven.compiler.target> 
        <maven.compiler.source>1.9</maven.compiler.source> 
    </properties> 
    

    , maven-compiler-plugin daha açık belirtilebilir. Bu durumda, eklentiyle ilişkili <source> ve <target> değerlerine bakın.

    Bu seçeneklerin her ikisi de here olarak tanımlanmıştır.

    POM'nizde <parent> varsa, bunu da (yinelemeli olarak) denetlemeniz gerekir.

    Not: source ve target belirtildiğinde, bu değerler derleyici komut satırı seçenekleri olarak geçirilir. Bu özelliği kullanarak, önceki Java sürümlerini derleyicinin nominal değerinden derleyebilir veya çalıştırabilirsiniz.

    +0

    Basitçe istemiyorsanız * derleyici * nasıl ayarlanır yolunuzdan javac kullanın: JAVA_HOME =/usr/lib/jvm/java-8-openjdk-amd64 mvn temiz install'. Maruziyetiniz, bunun Maven'in altında nasıl ve ne zaman geçersiz kılınabileceği açısından değişebilir. – nobar

    +0

    Nihai bir akıl denetimi olarak, javac'/'java'nın yapı ortamından komut satırının argümanına' -version' eklemek için yapı parametrelerini ayarlayarak - [burada] 'ya benzer olarak (https://stackoverflow.com/a/25079415/86967) (Gradle için). – nobar

    İlgili konular