2016-02-16 14 views
10

साथ JVM 7 के उपयोग के लिए मजबूर करने, मैं स्वयं मेरे Maven परियोजना में JVM उपयोग निर्दिष्ट करने के लिए की जरूरत है।पोम विन्यास स्केला Maven एक स्केला 2.9.2 परियोजना और जावा 8 संस्करण के बीच एक असंगति के कारण प्लगइन

pom.xml मैं बनाने के लिए, प्रलेखन here का उपयोग कर:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.netlogo.extension</groupId> 
    <packaging>jar</packaging> 
    <artifactId>rungekuta</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-library</artifactId> 
      <version>${lib.org.scala-lang.scala.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.nlogo</groupId> 
      <artifactId>netlogo</artifactId> 
      <version>5.2</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <properties> 
     <lib.org.scala-lang.scala.version>2.9.3</lib.org.scala-lang.scala.version> 
     <maven.scala.version>${lib.org.scala-lang.scala.version}</maven.scala.version> 
    </properties> 

    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>net.alchim31.maven</groupId> 
        <artifactId>scala-maven-plugin</artifactId> 
        <version>3.2.1</version> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.5.1</version> 
        <configuration> 
         <source>1.7</source> 
         <target>1.7</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>net.alchim31.maven</groupId> 
       <artifactId>scala-maven-plugin</artifactId> 
       <version>3.2.1</version> 
       <executions> 
        <execution> 
         <id>scala-compile-first</id> 
         <phase>process-resources</phase> 
         <goals> 
          <goal>add-source</goal> 
          <goal>compile</goal> 
          <goal>testCompile</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.2</version> 
       <configuration> 
        <archive> 
         <manifestEntries> 
          <Extension-Name>rungekuta</Extension-Name> 
          <Class-Manager>org.netlogo.extension.rungeKuta.RungeKutaExtension</Class-Manager> 
          <NetLogo-Extension-API-Version>5.0</NetLogo-Extension-API-Version> 
         </manifestEntries> 
        </archive> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <verbose>true</verbose> 
        <fork>true</fork> 
        <executable>/home/reyman/Logiciels/jdk1.7.0_80/bin/javac</executable> 
        <compilerVersion>1.3</compilerVersion> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 


    <name>${project.artifactId} ${project.version}</name> 


    <repositories> 
     <repository> 
      <id>snapshots.scala-tools.org</id> 
      <name>Scala snapshots repository</name> 
      <url>http://scala-tools.org/repo-snapshots/</url> 
     </repository> 
     <repository> 
      <id>scala-tools.org</id> 
      <name>Scala repository</name> 
      <url>http://scala-tools.org/repo-releases/</url> 
     </repository> 
    </repositories> 

</project> 

मैं सफलता के बिना यह कोशिश, Maven मेरे वर्तमान JVM 8 उपयोग करने के लिए जारी रखने के लिए और नहीं JVM maven-compiler-plugin में दी गई: <executable>/home/reyman/Logiciels/jdk1.7.0_80/bin/javac</executable>

कैसे क्या मैं अपने मिश्रित स्कैला/जावा स्रोत प्रोजेक्ट के mvn compile के दौरान जेवीएम 7 के उपयोग को मजबूर कर सकता हूं?

+0

साथ 'ऊपर क्या है 1.3' भी? – Tunaki

+0

हम, दस्तावेज़ का कहना है कि 1.3 या 1.5, बहुत स्पष्ट नहीं ...: https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#compilerVersion – reyman64

+0

कि एक उदाहरण है। क्या आप इसे '1.7' या' 7' पर सेट करने का प्रयास कर सकते हैं? – Tunaki

उत्तर

5

यह मेरे लिए काम किया: इस तरह

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

हाय, मैं सफलता के बिना प्रयास करता हूं, क्या आप मुझे अपना पूरा '' दे सकते हैं? – reyman64

5

कुछ का उपयोग करें:

<plugin> 
<groupId>net.alchim31.maven</groupId> 
<artifactId>scala-maven-plugin</artifactId> 
<version>3.2.1</version> 
<configuration> 
    <source>${java.version}</source> 
    <target>${java.version}</target> 
</configuration> 
</plugin> 

अपनी जरूरत के अनुसार इसे संशोधित।

यहाँ मेरा पूरा बिल्ड मैं अगर यह आपकी मदद करेंगे पता नहीं है है। मैं इसे यहाँ चिपकाने कर रहा हूँ, क्योंकि यह टिप्पणी के लिए बहुत लंबा है:

<build> 
    <finalName>KAIBICHI</finalName> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
       </additionalProjectnatures> 
       <additionalBuildcommands> 
        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
       </additionalBuildcommands> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>true</downloadJavadocs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>org.test.int1.Main</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

हाय, मैं सफलता के बिना प्रयास करता हूं, क्या आप मुझे अपना पूरा दे सकते हैं? मुझे स्कैला/जावा संकलन की आवश्यकता है। – reyman64

+0

ने मेरा एस्वर – Irakli

3

मैं एक ही Java6 के साथ कम करें-Maven-प्लगइन 1.7 उपयोग करने की कोशिश की समस्या थी। इसे जावा 7 की आवश्यकता है। समस्या Maven उचित JVM प्लग इन का उपयोग करने के लिए के साथ चलाने की जरूरत है, इसलिए केवल समाधान मैंने पाया चल Maven से पहले JAVA_HOME निर्यात करने के लिए किया गया था:

ORIGINAL_JAVA_HOME=$JAVA_HOME 
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79 
mvn jetty:run 
export JAVA_HOME=$ORIGINAL_JAVA_HOME 

अगर आप अक्सर हो सकता है आप जोड़ सकते हैं ऐसा करने की जरूरत अपने bashrc की तरह

alias mvn7='ORIGINAL_JAVA_HOME=$JAVA_HOME; export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79; mvn jetty:run; export JAVA_HOME=$ORIGINAL_JAVA_HOME' 
+0

संपादित किया हाँ, इस समय यह एकमात्र उत्तर है जो मैंने पाया है ... – reyman64

+0

आप JAVA_HOME को सेट करने के लिए। Mavenrc का भी उपयोग कर सकते हैं http://stackoverflow.com/questions/18813828/why-maven- उपयोग-JDK-1-6 बल्कि मेरी-जावा संस्करण-है-1-7 – Eashi

2

यह मेरे लिए काम किया है, लेकिन मैं ग्रहण (मंगल) प्लगइन विन्यास समायोजित करने के लिए अनुमति देने के लिए किया था एक उपनाम। मैंने एक खाली परियोजना के साथ अपने pom.xml का परीक्षण किया और ऐसा लगता है कि घटना के बिना निर्माण होता है।

मैं jenv उपयोग कर रहा हूँ ग्रहण के बाहर मेरी जावा वातावरण जिसमें बहुत आसान है आप कई जावा संस्करण स्थापित है, जब प्रबंधन करने के लिए

यहाँ है pom.xml मैं उपयोग कर रहा हूँ:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 

     <groupId>org.netlogo.extension</groupId> 
     <packaging>jar</packaging> 
     <artifactId>rungekuta</artifactId> 
     <version>1.0-SNAPSHOT</version> 

     <dependencies> 
      <dependency> 
       <groupId>org.scala-lang</groupId> 
       <artifactId>scala-library</artifactId> 
       <version>${lib.org.scala-lang.scala.version}</version> 
      </dependency> 
      <!-- 
      <dependency> 
       <groupId>org.nlogo</groupId> 
       <artifactId>netlogo</artifactId> 
       <version>5.2</version> 
       <scope>provided</scope> 
      </dependency> 
      --> 
     </dependencies> 

     <properties> 
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
      <lib.org.scala-lang.scala.version>2.9.3</lib.org.scala-lang.scala.version> 
      <maven.scala.version>${lib.org.scala-lang.scala.version}</maven.scala.version> 
     </properties> 

     <build> 
      <pluginManagement> 
       <plugins> 
        <plugin> 
         <groupId>net.alchim31.maven</groupId> 
         <artifactId>scala-maven-plugin</artifactId> 
         <version>3.2.1</version> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-compiler-plugin</artifactId> 
         <version>3.5.1</version> 
         <configuration> 
          <source>1.7</source> 
          <target>1.7</target> 
         </configuration> 
        </plugin> 
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> 
        <plugin> 
         <groupId>org.eclipse.m2e</groupId> 
         <artifactId>lifecycle-mapping</artifactId> 
         <version>1.0.0</version> 
         <configuration> 
          <lifecycleMappingMetadata> 
           <pluginExecutions> 
            <pluginExecution> 
             <pluginExecutionFilter> 
              <groupId> 
               net.alchim31.maven 
              </groupId> 
              <artifactId> 
               scala-maven-plugin 
              </artifactId> 
              <versionRange> 
               [3.2.1,) 
              </versionRange> 
              <goals> 
               <goal>testCompile</goal> 
              </goals> 
             </pluginExecutionFilter> 
             <action> 
              <ignore></ignore> 
             </action> 
            </pluginExecution> 
           </pluginExecutions> 
          </lifecycleMappingMetadata> 
         </configuration> 
        </plugin> 
       </plugins> 
      </pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>net.alchim31.maven</groupId> 
        <artifactId>scala-maven-plugin</artifactId> 
        <version>3.2.1</version> 
        <executions> 
         <execution> 
          <id>scala-compile-first</id> 
          <phase>process-resources</phase> 
          <goals> 
           <goal>add-source</goal> 
           <goal>compile</goal> 
           <goal>testCompile</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-jar-plugin</artifactId> 
        <version>2.2</version> 
        <configuration> 
         <archive> 
          <manifestEntries> 
           <Extension-Name>rungekuta</Extension-Name> 
           <Class-Manager>org.netlogo.extension.rungeKuta.RungeKutaExtension</Class-Manager> 
           <NetLogo-Extension-API-Version>5.0</NetLogo-Extension-API-Version> 
          </manifestEntries> 
         </archive> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 


     <name>${project.artifactId} ${project.version}</name> 


     <repositories> 
      <repository> 
       <id>snapshots.scala-tools.org</id> 
       <name>Scala snapshots repository</name> 
       <url>http://scala-tools.org/repo-snapshots/</url> 
      </repository> 
      <repository> 
       <id>scala-tools.org</id> 
       <name>Scala repository</name> 
       <url>http://scala-tools.org/repo-releases/</url> 
      </repository> 
     </repositories> 

    </project> 
संबंधित मुद्दे