繁体   English   中英

在Spring boot pom.xml中指定java 1.8 JDK路径,不设置java_home为1.8版本

[英]Specify java 1.8 JDK path in Spring boot pom.xml without setting java_home to 1.8 version

您好,我有一个多模块项目,我需要在其中添加一个新模块,它是一个 SPRING BOOT 应用程序。 所有其他模块都在 java 版本 1.6 上运行,但我需要使用 java 1.8 运行 Spring 引导模块。 问题是我无法将 JAVA_HOME 从 1.6 更改为 1.8。 我需要在 Spring 引导应用程序的 POM.xml 中指定 Java 位置。

我试图在 POM.xml 中提供编译器和版本的 JDK 路径,但出现如下错误 Unsupported major minor issue:

**org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:494)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:119)
... 20 more
Caused by: java.lang.UnsupportedClassVersionError: org/apache/maven/plugins/clean/CleanMojo : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)**

这是我正在使用的 POM。

 <?xml version="1.0" encoding="UTF-8"?>
    <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 https://maven.apache.org/xsd/maven- 
     4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath/>
    </parent>
    <groupId>com.data.service.risk</groupId>
    <artifactId>DataService</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>DataService</name>
    <description>Data service Project</description>
    
    <properties>
    <jdk.version>8</jdk.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <jdk>C:\software\tools\Java\jdk1.8.0_121</jdk>
    </properties>
    
    <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
    <version>2.2.2.RELEASE</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.3.RELEASE</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>5.2.3.RELEASE</version>
    </dependency>
    
    <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.2</version>
    </dependency>
    
    
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.2.2.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.2.2.RELEASE</version>
    <scope>test</scope>
    <exclusions>
    <exclusion>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    
    <!-- this is a java 6 compiled dependency-->
    <dependency>
    <groupId>com.test.data.risk</groupId>
    <artifactId>java_6_project</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty</artifactId>
    <version>6.1.19</version>
    <exclusions>
    <exclusion>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>servlet-api</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
    </dependency>
    
    
    </dependencies>
    
    
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
    <jvm>C:\software\tools\Java\jdk1.8.0_121\bin\java</jvm>
    <forkMode>once</forkMode>
    </configuration>
    </plugin>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <executable>C:\software\tools\Java\jdk1.8.0_121\bin\javac</executable>
    <fork>true</fork>
    </configuration>
    </plugin>
    
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    
    </plugin>
    </plugins>
    </build>    
    </project>

请让我知道如何在不将 JAVA_HOME 设置为 java 1.8 的情况下在 POM.xml 中指定 JDK 位置 Spring 引导应用程序

尝试将版本添加为 3.8.1,如下所示

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

如需更多帮助http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

http://tutorials.jenkov.com/maven/java-compiler.html

很简单。 尝试将以下属性添加到 pom.xml。 注意我添加的是java 11.你可以添加你需要的版本。

<properties>
    <jdk.version>11</jdk.version>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>

还要添加以下指定 JDK 路径的插件。 例如:C:\Program Files\Java\jdk-11.0.6\bin\javac

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
      <verbose>true</verbose>
      <fork>true</fork>
      <executable><!-- path-to-javac --></executable>
      <compilerVersion>1.3</compilerVersion>
    </configuration>
  </plugin>
</plugins>

添加上述代码后,我的 spring 引导项目按预期工作。 参考: http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM