【问题标题】:maven, JAVA_HOME in pommaven,pom 中的 JAVA_HOME
【发布时间】:2013-03-30 21:15:12
【问题描述】:

我有 Maven 2.2.1,它使用 JAVA 1.6。但我需要用 1.7 编译和执行我的项目。我不想因为其他项目而更改 JAVA_HOME 变量,据我所知,我可以在 pom.xml 中配置它。

使用下面的代码,我可以编译我的项目,但由于版本较小,我无法执行它。我做错了什么?或者在pom中不可能做到这一切?或者它与maven版本(2.2.1)有关。

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
             <source>1.7</source>
             <target>1.7</target>
             <fork>true</fork>
             <executable>...path-to-my-1.7-javac...</executable>
             <compilerVersion>1.7</compilerVersion>
             <encoding>UTF-8</encoding>
         </configuration>
 </plugin>

编辑:使用 MAVEN-EXEC-PLUGIN 解决方案

通过添加以下配置解决了问题:

 <properties>
      <arg0>defaultParam1</arg0>
 </properties>


 <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>exec-maven-plugin</artifactId>
        <executions>
           <execution>
             <goals>
                <goal>exec</goal>
             </goals>
           </execution>
         </executions>
        <configuration>
          <executable>path-to-java-1.7/bin/java</executable>
          <arguments>
            <argument>-classpath</argument>
             <classpath/>
             <argument>${main.class}</argument>
             <argument>${arg0}</argument>
      </arguments>
        </configuration>
    </plugin>

【问题讨论】:

    标签: maven compiler-construction


    【解决方案1】:

    看看How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version 安装 JRE 7 就好了(maven 是构建工具,不是运行时工具)

    【讨论】:

    • 我已经安装了 java 7,就像我在问题中所说的那样。如果 java_home 指向 java 1.7,它会起作用,但我不想改变它。我想强制使用 1.7。对于 pom 中的这个特定项目。当然,您可以从 maven 运行 java 代码。我尝试使用 exec-plugin 和构建的 jar 执行代码。它确实适用于 JAV_HOME = 1.7。
    • @Salvadora 在不更改 JAVA_HOME 的情况下安装它...说你在 c:\temp\Foo 中输出 JRE7 你需要做的就是调用 c:\temp\Foo\java -jar \builder.jar
    • Shmil,感谢您的重播。我知道如果我在终端中给出 jre 的路径,我可以执行我的代码。但这是我想要避免的。也许当我使用 jar 时不可能这样做,但至少在我使用 exec:java (maven-exec-plugin) 时是不可能的。我可以配置 exec-plugin 这样做吗?
    • 我配置了 exec-plugin(请参阅我的问题中的 EDIT)。但是 ist 仍然无法运行 1.7 的代码。使用 mvn exec:java
    • 问题部分解决:我用目标执行器配置了插件,现在我可以用 1.7 运行。只剩下一个问题:如何将 -Dexec.args 作为参数传递给 exec,以便将 args 传递给 main 方法?
    猜你喜欢
    • 2020-11-12
    • 2013-02-23
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2011-01-02
    • 2012-04-04
    相关资源
    最近更新 更多