`

mave打包编译java生成的jdk版本 / Maven项目在刷新/导入项目时jdk版本过低的解决方案

    博客分类:
  • Java
 
阅读更多
1 pom.xml 决定代码版本
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>


2 执行编译打包

clean -U  package -Dmaven.test.skip=true

3 检查class

命令:javap -verbose ClassName.class


minor version 50.0
这是1.6

minor version 51.0
这是1.7

==========================================

1.案例引入
   导入一个maven的web项目,发现jdk版本过低,当然这里可以右键build path来修改,但是当我们update-project-configration时,版本又变化回来了。


2.解决方案
2.1方案一 添加如下配置后,update project configuration

[html] view plain copy
解决方法是,在maven的pom.xml中添加 
    <build> 
    <pluginManagement> 
        <plugins> 
         <plugin>   
            <groupId>org.apache.maven.plugins</groupId>   
            <artifactId>maven-compiler-plugin</artifactId>   
            <configuration>   
                <source>1.7</source>   
                <target>1.7</target>   
            </configuration>   
        </plugin>   
        </plugins> 
    </pluginManagement> 
    </build> 


2.2方案2

2.2.1注意:eclipse的maven依赖必须要是外部的才行





在安装目录的D:\apache-maven-3.0.5\conf下的settings.xml中插入:红色部分

[html] view plain copy
<profiles> 
    <!-- profile 
     | Specifies a set of introductions to the build process, to be activated using one or more of the 
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/> 
     | or the command line, profiles have to have an ID that is unique. 
     | 
     | An encouraged best practice for profile identification is to use a consistent naming convention 
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc. 
     | This will make it more intuitive to understand what the set of introduced profiles is attempting 
     | to accomplish, particularly when you only have a list of profile id's for debug. 
     | 
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo. 
    <profile> 
      <id>jdk-1.7</id> 
 
      <activation> 
        <jdk>1.7</jdk> 
      </activation> 
 
      <repositories> 
        <repository> 
          <id>jdk17</id> 
          <name>Repository for JDK 1.7 builds</name> 
          <url>http://www.myhost.com/maven/jdk17</url> 
          <layout>default</layout> 
          <snapshotPolicy>always</snapshotPolicy> 
        </repository> 
      </repositories> 
    </profile> 
    --> 
    <span style="color:#FF0000;"><span style="color:#FF0000;"><profile>   
    <id>jdk17</id>   
    <activation>   
        <activeByDefault>true</activeByDefault>   
        <jdk>1.7</jdk>   
    </activation>   
    <properties>   
        <maven.compiler.source>1.7</maven.compiler.source>   
        <maven.compiler.target>1.7</maven.compiler.target>   
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>   
    </properties>    
</profile></span></span>  
 
    <!-- 
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev', 
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration 
     | might hypothetically look like: 
     | 
     | ... 
     | <plugin> 
     |   <groupId>org.myco.myplugins</groupId> 
     |   <artifactId>myplugin</artifactId> 
     |    
     |   <configuration> 
     |     <tomcatLocation>${tomcatPath}</tomcatLocation> 
     |   </configuration> 
     | </plugin> 
     | ... 
     | 
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to 
     |       anything, you could just leave off the <value/> inside the activation-property. 
     | 
    <profile> 
      <id>env-dev</id> 
 
      <activation> 
        <property> 
          <name>target-env</name> 
          <value>dev</value> 
        </property> 
      </activation> 
 
      <properties> 
        <tomcatPath>/path/to/tomcat/instance</tomcatPath> 
      </properties> 
    </profile> 
    --> 
  </profiles> 


第二种配置是属于全局的配置,第一种是针对一个项目的配置,大家可以在开发中根据需要选择使用。
分享到:
评论

相关推荐

    IDEA+Maven导入新包JDK版本冲突问题

    IDEA+Maven导入新包JDK版本冲突问题解决方案 IDEA 和 Maven 是 Java 开发中常用的集成开发环境和项目管理工具,但是当我们在 IDEA 中使用 Maven 管理项目时,可能会遇到 JDK 版本冲突问题。今天我们将讨论如何解决...

    Maven兼容jdk1.7版本

    【标题】"Maven兼容jdk1.7版本"指出的核心知识点是关于Apache Maven的一个特定版本——3.0.5,这个版本与Java Development Kit (JDK) 1.7(也称为Java 7)有着良好的兼容性。在软件开发过程中,构建工具如Maven与...

    apache-maven-3.3.9,需要jdk7及以上版本

    总结来说,Apache Maven 3.3.9是一个强大的Java项目管理工具,需要JDK 7或以上版本支持。它的依赖管理、预定义生命周期和插件系统简化了项目构建和维护,使得开发团队能够更专注于编写业务代码,而不是解决构建问题...

    jdk8、maven3.9安装包

    Java Development Kit(JDK)和Maven是两个在IT行业中至关重要的工具,特别是对于Java开发者而言。本文将详细介绍这两个软件的安装过程以及它们在软件开发中的作用。 首先,JDK,全称为Java Development Kit,是...

    MAVEN-3.5.4,需要jdk7及以上版本

    在使用Maven 3.5.4之前,确保你的系统已经安装了Java Development Kit (JDK) 7或更高版本,因为这是运行Maven的必要条件。 1. **Maven 3.5.4的特性与改进** Maven 3.5.4是一个重要的维护版本,旨在修复之前版本中...

    eclipse更新maven,jdk改变解决办法

    eclipse更新maven,jdk改变解决办法 eclipse更新maven时,项目原本设定的jdk版本发生改变,这是...eclipse更新maven时,jdk版本改变的问题可以通过在pom.xml文件中指定jdk版本或在settings.xml文件中加入配置来解决。

    java的jdk7/jdk8通用tools.jar

    java的jdk7/jdk8通用tools.jar,解决maven项目打包或者启动报错时缺少启动jar包的问题。

    eclipse中使用maven创建项目JDK版本默认是1.5解决方法.docx

    在Eclipse中使用Maven创建项目时,你可能会遇到一个常见的问题,即默认的JDK版本被设置为较旧的1.5。这可能会导致一些现代Java特性无法使用,或者与你的开发环境不兼容。以下是解决这个问题的详细步骤: 首先,我们...

    eclipse 创建maven项目设置默认jdk版本.rar

    JDK(Java Development Kit)是Oracle提供的Java编程工具集,包含了Java编译器、运行时环境以及各种API,不同版本的JDK可能支持不同的Java语言特性。 首先,确保你已经安装了Eclipse IDE和Maven。如果还没有安装,...

    maven java 模板Linux环境 Java open-jdk17

    - **常用Maven命令**:如`mvn clean`清理项目,`mvn compile`编译源代码,`mvn package`打包项目,`mvn install`将项目安装到本地仓库,`mvn test`运行测试。 3. **Linux运维**: - **权限管理**:理解Linux的...

    jdk11_maven3.6_win_x64.zip

    标题“jdk11_maven3.6_win_x64.zip”指的是一个包含了Java Development Kit (JDK) 11的Oracle版本以及Maven 3.6的Windows x64平台安装包。这个压缩文件是为了在64位Windows操作系统上同时安装和使用这两个重要的Java...

    如何提高Maven多模块项目编译速度.docx

    在开发大型Java项目时,Maven多模块结构的使用非常常见,它可以帮助我们更好地管理和组织代码。然而,当项目变得庞大时,编译速度可能会成为一个显著的问题。以下是一些优化Maven多模块项目编译速度的策略: 1. **...

    apache-maven-3.2.5,需要jdk6以上版本

    同时,JDK 6也是为了确保兼容大多数Java项目,因为当时许多项目仍在使用这个版本。然而,随着Java技术的发展,现在推荐使用JDK 8或更高版本,以充分利用更多的新特性和性能优化。 Maven的依赖管理是其另一个重要...

    maven配置全局的jdk和配置局部的jdk

    其中,如何正确配置项目的Java版本(即JDK版本)是确保项目能够顺利编译运行的关键之一。本文将详细介绍如何在Maven中配置全局JDK和局部JDK。 #### 全局JDK配置 **全局JDK配置**是指在用户的Maven配置文件`...

    Javamaven全局配置jdk版本共3页.pdf.z

    1. 如果系统中有多个JDK版本,确保在运行Maven时,`JAVA_HOME`指向了期望的JDK。 2. Maven的`pom.xml`文件也可以设置`&lt;maven.compiler.source&gt;`和`&lt;maven.compiler.target&gt;`,但这是针对单个项目的配置,不同于全局...

    jdk+tomcat+maven

    在IT行业中,开发Java Web应用通常需要三个核心组件:JDK(Java Development Kit)、Tomcat(一个流行的Java Servlet容器)和Maven(项目管理和构建工具)。这个名为"jdk+tomcat+maven"的压缩包文件显然是为了提供一...

    Javamaven全局配置jdk版本共3页.pdf.zip

    这是因为Maven在执行时会优先考虑`JAVA_HOME`,如果`JAVA_HOME`未设置或指向的版本与`settings.xml`中的版本不一致,可能会导致编译错误。 4. **验证配置**: 运行`mvn -v`或`mvn --version`命令,查看Maven使用的...

    apache-maven-3.6.3; jre1.8.0-361; jdk1.8.0-131

    Maven利用JDK中的javac编译器将源代码编译为字节码,同时管理项目依赖,自动下载所需库,并遵循预定义的构建生命周期来打包和测试项目。Maven的POM文件描述了项目的配置、依赖关系和构建指令,使得团队协作和项目...

Global site tag (gtag.js) - Google Analytics