最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven打包如何指定jdk的版本

 更新時間:2023年04月08日 13:45:35   作者:我不想名字重復  
這篇文章主要介紹了maven打包如何指定jdk的版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

maven打包指定jdk的版本

問題

今天遇到個問題,項目中新寫了一個接口,其中用到了lambda表達式,本地跑是沒問題的,但提交到gitLab上,自動打包部署時卻報錯了(這是其他同事配置的)

報錯信息如下:

在這里插入圖片描述

可以看出大概意思就是,1.5的jdk不支持lambda表達式(lambda表達式確實是1.8的新特性),后來查看了下,本地idea中習慣的把項目中jdk的環(huán)境和語言環(huán)境都設置的1.8版本,雖然打包時引的也是jdk8的包,但maven估計默認還是用的1.5的去打包的(估計是當時這個項目建立時使用的1.5的jdk),所以需要在手動設置下maven打包的jdk版本

這是同事自動化部署寫的配置,只是引了jdk1.8的包

在這里插入圖片描述

百度了一下,還是需要在pom中加配置

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

maven打包不同jdk版本的包

對于MAVEN項目,我們存在將一個工程同樣的代碼部署到不同的環(huán)境上去的場景,且這些環(huán)境的jdk版本可能會不同,那么如何一份代碼打不同的jdk版本的包呢?

基于maven我們就可以很方便的做到這點。

1. 在項目的pom文件中加入如下配置(主要配置)

<build>
? ? ? ? <plugins>
? ? ? ? ? ? <plugin>
? ? ? ? ? ? ? ? <groupId>org.apache.maven.plugins</groupId>
? ? ? ? ? ? ? ? <artifactId>maven-compiler-plugin</artifactId>
? ? ? ? ? ? ? ? <version>3.8.0</version>
? ? ? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? ? ? <source>${java.version}</source>
? ? ? ? ? ? ? ? ? ? <target>${java.version}</target>
? ? ? ? ? ? ? ? </configuration>
? ? ? ? ? ? </plugin>
? ? ? ? ? ? <plugin>
? ? ? ? ? ? ? ? <groupId>org.apache.maven.plugins</groupId>
? ? ? ? ? ? ? ? <artifactId>maven-jar-plugin</artifactId>
? ? ? ? ? ? ? ? <version>3.1.0</version>
? ? ? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? ? ? <archive>
? ? ? ? ? ? ? ? ? ? ? ? <manifest>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
? ? ? ? ? ? ? ? ? ? ? ? </manifest>
? ? ? ? ? ? ? ? ? ? </archive>
? ? ? ? ? ? ? ? </configuration>
? ? ? ? ? ? </plugin>
? ? ? ? </plugins> ? ?
? ? </build>
? ? <profiles>
? ? ? ? <profile>
? ? ? ? ? ? <id>default</id>
? ? ? ? ? ? <activation>
? ? ? ? ? ? ? ? <activeByDefault>true</activeByDefault> ? ? <!--默認激活該profile-->
? ? ? ? ? ? </activation>
? ? ? ? ? ? <properties>
? ? ? ? ? ? ? ? <java.version>1.8</java.version> ? ? ? ? ? ?<默認用1.8版本>
? ? ? ? ? ? </properties>
? ? ? ? </profile>
? ? ? ? <profile>
? ? ? ? ? ? <id>jdk17</id>
? ? ? ? ? ? <properties>
? ? ? ? ? ? ? ? <java.version>1.7</java.version> ? ? ? ? ? ?<該配置用1.7版本>
? ? ? ? ? ? </properties>
? ? ? ? ? ? <build>
? ? ? ? ? ? ? ? <plugins>
? ? ? ? ? ? ? ? ? ? <plugin>
? ? ? ? ? ? ? ? ? ? ? ? <artifactId>maven-jar-plugin</artifactId>
? ? ? ? ? ? ? ? ? ? ? ? <executions>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <execution>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <phase>package</phase>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>jar</goal>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <classifier>jdk17</classifier>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </configuration>
? ? ? ? ? ? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? ? ? ? ? ? </executions>
? ? ? ? ? ? ? ? ? ? </plugin>
? ? ? ? ? ? ? ? </plugins>
? ? ? ? ? ? </build>
? ? ? ? </profile>
? ? </profiles>

2. 用mvn命令構建項目

mvn -P jdk17 clean?
mvn -P jdk17 install  #安裝的時候會出現2個包,1.8版本的與1.7版本的都生成了,如:blog-1.0.2.jar、blog-1.0.2-jdk17.jar

如果需要發(fā)布項目到服務器

mvn -P jdk17 -P <depoly配置ID> depoly

3. 項目中引用

<!-- 引用1.8編譯版本 -->
<dependency>
? <groupId>org.test</groupId>
? <artifactId>blog</artifactId>
? <version>0.1</version>
</dependency>
?
<!-- 引用1.7編譯版本 -->
<dependency>
? <groupId>org.test</groupId>
? <artifactId>blog</artifactId>
? <version>0.1</version>
? <classifier>jdk17</classifier>
</dependency>

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Mybatis 中的sql批量修改方法實現

    Mybatis 中的sql批量修改方法實現

    在項目中遇到需要批量更新的功能,原本想的是在Java中用循環(huán)訪問數據庫去更新,但是心里總覺得這樣做會不會太頻繁了,太耗費資源了,效率也很低,查了下mybatis的批量操作,原來確實有<foreach>標簽可以做到,下面通過本文給大家介紹下
    2017-01-01
  • SpringSecurity授權機制的實現(AccessDecisionManager與投票決策)

    SpringSecurity授權機制的實現(AccessDecisionManager與投票決策)

    本文主要介紹了SpringSecurity授權機制的實現,其核心是AccessDecisionManager和投票系統(tǒng),下面就來介紹一下,感興趣的可以了解一下
    2025-04-04
  • mybatis使用pagehelper插件過程詳解

    mybatis使用pagehelper插件過程詳解

    這篇文章主要介紹了mybatis使用pagehelper插件過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 使用Java提取字符串里的xml標簽

    使用Java提取字符串里的xml標簽

    在Java中,我們經常需要處理XML數據,有時候,我們需要從一個包含XML標簽的字符串中提取出這些標簽,本文將介紹如何使用Java代碼來獲取字符串中的XML標簽,需要的可以參考下
    2024-12-12
  • Java實現AWT四大事件的詳細過程

    Java實現AWT四大事件的詳細過程

    AWT的事件處理是一種委派式事件處理方式:普通組件(事件源)將整個事件處理委托給特定的對象(事件監(jiān)聽器);當該事件源發(fā)生指定的事件時,就通知所委托的事件監(jiān)聽器,由事件監(jiān)聽器來處理這個事件
    2022-04-04
  • java中如何反射獲取一個類

    java中如何反射獲取一個類

    大家說說對java反射的理解,使用反射如何獲取一個類,下面小編給大家整理一些資料,關于java中如何反射獲取一個類,有需要的朋友可以參考下
    2015-08-08
  • 詳解Java中synchronized關鍵字的死鎖和內存占用問題

    詳解Java中synchronized關鍵字的死鎖和內存占用問題

    Java的synchronized關鍵字用來進行線程同步操作,然而這在使用中經常會遇到一些問題,這里我們就來詳解Java中synchronized關鍵字的死鎖和內存占用問題:
    2016-06-06
  • servlet實現文件上傳與下載功能

    servlet實現文件上傳與下載功能

    這篇文章主要為大家詳細介紹了servlet實現文件上傳與下載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java中Struts2的值棧ValueStack詳解

    Java中Struts2的值棧ValueStack詳解

    這篇文章主要介紹了Java中Struts2的值棧ValueStack詳解,值棧(ValueStack)就是 OGNL 表達式存取數據的地方,在一個值棧中,封裝了一次請求所需要的所有數據,需要的朋友可以參考下
    2023-08-08
  • Java List 用法詳解及實例分析

    Java List 用法詳解及實例分析

    這篇文章主要介紹了Java List 用法詳解及實例分析的相關資料,需要的朋友可以參考下
    2017-07-07

最新評論

襄汾县| 吕梁市| 保亭| 万盛区| 泽州县| 仁寿县| 文登市| 临海市| 南陵县| 荃湾区| 湟中县| 濮阳市| 哈巴河县| 关岭| 理塘县| 通榆县| 荥经县| 新乐市| 香格里拉县| 临猗县| 宁化县| 阳江市| 乐业县| 红桥区| 栾城县| 衡阳市| 康定县| 鹿邑县| 贡嘎县| 太和县| 南安市| 西林县| 保亭| 连江县| 五大连池市| 渑池县| 寻乌县| 镇巴县| 华容县| 嵩明县| 河津市|