99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Maven項目如何鎖定JDK編譯與打包版本,避開版本錯配坑

Maven項目如何鎖定JDK編譯與打包版本,避開版本錯配坑 1. 一個版本錯配引發(fā)的連環(huán)坑前陣子幫一個團隊排查問題現(xiàn)象特別典型項目在開發(fā)機上跑得好好的一到構(gòu)建機上mvn clean package就報invalid target release: 17把構(gòu)建機的 JAVA_HOME 換到 17 之后編譯過了結(jié)果java -jar一啟動又拋UnsupportedClassVersionError說這個 class 文件是更高版本編譯的當(dāng)前運行環(huán)境不認識。來來回回折騰了小半天根因其實就一句話這個項目從頭到尾沒人明確說過自己該用哪個 JDK 版本編譯全靠各臺機器上碰巧裝了什么。這篇文章就圍繞java生態(tài)里最基礎(chǔ)也最容易翻車的一件事展開——maven項目如何明確指定編譯與打包所使用的JDK版本把編譯和打包兩個階段的版本來源徹底釘死。這件事的受眾比想象中廣。剛學(xué) Maven 的同學(xué)往往只知道m(xù)vn clean install能跑就算成功不知道背后是誰在調(diào)用javac更不知道去哪兒改工作兩三年的同學(xué)可能習(xí)慣了 IDEA 里點一下 Reload從沒關(guān)心過命令行構(gòu)建時用的是哪個 JDK至于團隊里的構(gòu)建維護者、CI 負責(zé)人這件事幾乎每周都要跟別人解釋一遍。我把這幾年踩過的坑、試過的幾種方案、以及每種方案的適用邊界整理在這里你可以按自己項目的實際情況直接抄配置。先說結(jié)論方便趕時間的同學(xué)對照單 JDK 環(huán)境用maven.compiler.release一行屬性就能搞定多 JDK 共存、需要嚴格隔離的場景上maven-toolchains-plugin臨時驗證用命令行切JAVA_HOME最快而fork executable這種寫法我基本不推薦后文會說為什么。但工具怎么選只是表層真正讓人反復(fù)踩坑的是那些看起來配了、其實沒生效的隱性配置這才是重點。1.1 JDK、JVM、Maven 三者的職責(zé)邊界很多人把這三個東西混著叫導(dǎo)致排查問題時抓不住重點。我們拆開看JDK是開發(fā)工具包里面包含了javac編譯器、java運行程序、javadoc、jar等一堆命令它決定了你能編譯出什么版本以及你能運行什么版本JVM是運行時是 JDK 的一部分準(zhǔn)確說是 JRE 的一部分而 JRE 又在 JDK 里只負責(zé)執(zhí)行字節(jié)碼Maven本身是一個 Java 程序它自己也是跑在某個 JVM 上的。這就帶來了一個非常關(guān)鍵的認知你機器上的 JDK 至少扮演了兩個角色——跑 Maven 的那個 JDK和編譯你代碼的那個 JDK。默認情況下它們是同一個因為 Maven 會拿自己所在 JVM 下面的javac去編譯。但這兩者是可以被分開的工具鏈機制干的就是這件事。理解了這一點后面很多為什么我改了配置還是不生效的困惑就迎刃而解了。還有一個容易被忽略的第三方角色IDE 自帶的編譯器。IntelliJ IDEA 默認不一定用 Maven 去構(gòu)建它有一套自己的增量編譯器和字節(jié)碼目標(biāo)版本設(shè)置這套設(shè)置和 pom 里的配置完全是兩個獨立的世界。這就是為什么經(jīng)常出現(xiàn)命令行編譯報錯、IDEA 里點運行卻沒事或者反過來的詭異現(xiàn)象。1.2 版本錯配的三種典型癥狀版本沒對齊報錯是分階段的認準(zhǔn)報錯出現(xiàn)的時機能省掉一大半排查時間。第一種是編譯期就掛。最常見的是invalid target release: 17意思是你讓我產(chǎn)出 17 版本的字節(jié)碼但我手里這個javac根本不認識 17。這幾乎可以斷定執(zhí)行編譯的 JDK 版本低于你配置的目標(biāo)版本。另一種是反向的報Source option 8 is no longer supported說明你用了太新的 JDK而它已經(jīng)不再支持這么老的語法目標(biāo)了——JDK 12 之后就徹底移除了對source 6的支持更老的版本還在被逐步淘汰。第二種是編譯過了運行期炸。典型報錯是UnsupportedClassVersionError: xxx has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0。這句話信息量很大61.0對應(yīng) Java 17 的字節(jié)碼52.0對應(yīng) Java 8 的運行時翻譯過來就是你用 17 編譯的卻拿 8 去跑。數(shù)字和版本的對應(yīng)關(guān)系后文會列表。第三種最陰險編譯運行都不報錯但行為不對。比如你用了 JDK 17 編譯目標(biāo)設(shè)為 8代碼里調(diào)了一個 Java 9 才有的方法編譯期毫無怨言部署到 Java 8 的服務(wù)器上運行時才拋NoSuchMethodError。這種問題的根源在于source/target參數(shù)只做語法和字節(jié)碼層面的降級它壓根不檢查你調(diào)用的 API 在那個版本里存不存在。要解決它必須用release參數(shù)這也是我后面重點推薦它的原因。2. 編譯與打包階段JDK 到底在哪里被用到2.1 編譯階段真正干活的是 javacMaven 自己不會編譯 Java 代碼。它做的事情是讀取 pom按生命周期順序調(diào)用一堆插件其中負責(zé)編譯的是maven-compiler-plugin而這個插件本質(zhì)上就是一個薄薄的包裝層它最終會去調(diào)用javac命令或者在進程內(nèi)調(diào)用編譯器 API。所以指定編譯 JDK 版本這句話拆開其實是兩個訴求一是讓哪個javac來執(zhí)行編譯二是告訴這個javac產(chǎn)出哪個版本的字節(jié)碼。前者靠的是JAVA_HOME、工具鏈或executable參數(shù)后者靠的是source、target、release這三個參數(shù)。很多人只做了后半件事然后奇怪為什么換臺機器就崩了因為前半件事他沒管默認跟著環(huán)境的JAVA_HOME漂移。判斷當(dāng)前實際用的是哪個javac最快的方法是mvn -v。它會打印出 Maven 版本、Maven Home 和 Java version 三行。注意這里顯示的是跑 Maven 的那個 JDK在沒有配置工具鏈的情況下它就是編譯用的 JDK。這個命令我建議你養(yǎng)成習(xí)慣每次遇到版本相關(guān)報錯先跑一遍看看比瞎猜快得多。2.2 打包階段不影響字節(jié)碼但影響能不能跑打包階段package及其后續(xù)的verify、install、deploy本身不會重新編譯代碼所以嚴格來說它不決定字節(jié)碼版本。但它決定了一些別的東西同樣會讓人翻車。maven-jar-plugin會在MANIFEST.MF里寫入Build-Jdk-Spec之類的信息這個值來自執(zhí)行構(gòu)建的 JDK可以當(dāng)線索用但不是決定性因素。更關(guān)鍵的是那些和運行時強相關(guān)的打包動作用jlink裁剪運行時鏡像時必須指定目標(biāo) JDK 的jmods目錄用jpackage做原生安裝包時入口 JDK 版本直接決定了產(chǎn)物的運行環(huán)境打 Docker 鏡像時基礎(chǔ)鏡像里裝的是哪個 JDK決定了容器里能不能跑起來。這些環(huán)節(jié)的版本都必須和編譯目標(biāo)保持一致否則就是鏡像是 8代碼是 17的經(jīng)典事故。還有一個隱形環(huán)節(jié)是測試。maven-surefire-plugin在test階段會拉起 JVM 執(zhí)行單元測試如果它用的 JDK 版本低于字節(jié)碼版本mvn package會在測試階段直接失敗。這也是為什么很多人明明只想跳過編譯問題結(jié)果卡在測試上——其實報錯信息已經(jīng)告訴你是版本問題了。實在需要先出包可以用-DskipTests跳過執(zhí)行但要注意-Dmaven.test.skiptrue是連編譯帶執(zhí)行一起跳兩者不一樣。3. 方案一用 properties 一把鎖死版本覆蓋八成場景3.1 最簡可用的 pom 配置如果項目只需要支持一個固定的 JDK 版本環(huán)境里也只有這一個 JDK那沒必要上工具鏈在pom.xml的properties里加一行就夠properties project.build.sourceEncodingUTF-8/project.build.sourceEncoding maven.compiler.release17/maven.compiler.release /propertiesmaven.compiler.release是maven-compiler-plugin約定的屬性名插件會自動讀取它。如果你想讓配置更顯式、更容易被后來的人看到也可以寫成完整形式build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.13.0/version configuration release17/release encodingUTF-8/encoding /configuration /plugin /plugins /build這兩種寫法效果完全一樣區(qū)別只是可見性和優(yōu)先級。當(dāng)properties和configuration同時存在時configuration里的顯式配置優(yōu)先級更高會覆蓋屬性。所以我一般建議團隊里選一種風(fēng)格統(tǒng)一到底別混著寫否則新人看權(quán)限判斷容易懵。這里有個細節(jié)值得單獨說插件版本一定要顯式聲明。不寫版本時 Maven 會用一套內(nèi)置的默認版本這套默認版本跟著 Maven 的版本走不同 Maven 版本可能綁定不同的插件版本行為就會有細微差異。我見過一次構(gòu)建結(jié)果不一致最后查出來就是兩臺機器的 Maven 版本不同導(dǎo)致maven-compiler-plugin版本不同一個默認走source/target一個走了別的分支。聲明版本這件事成本幾乎為零收益是構(gòu)建可復(fù)現(xiàn)。3.2 source、target、release 三個開關(guān)怎么選這三個參數(shù)是本節(jié)的核心我用一張表把它們擺清楚參數(shù)作用層次是否校驗 API推薦度說明source語法層面否單用不推薦限制能用哪些語言特性比如 lambda、var、switch 表達式target字節(jié)碼層面否單用不推薦決定產(chǎn)出的 class 文件 major 版本號release語法 API 字節(jié)碼是強烈推薦JDK 9 引入等價于同時指定 source/target 并鎖定對應(yīng)的 API 簽名release的工作原理是讀取 JDK 自帶的ct.sym符號文件里面保存了歷史各版本的 API 簽名。編譯時它會拿目標(biāo)版本的簽名去核對你的調(diào)用一旦你用了高版本才有的類或方法直接編譯失敗而不是等到運行期炸。這個行為太有價值了它把第三類編譯運行都不報錯但行為不對的隱患提前到了構(gòu)建階段。舉一個我實際遇到的例子。代碼里寫了List.of(a, b)這是 Java 9 引入的工廠方法。如果配置是source8, target8用 JDK 17 編譯整個過程干干凈凈沒有任何警告但部署到 Java 8 環(huán)境后調(diào)用到這行就拋NoSuchMethodError: java.util.List.of。改成release8之后編譯期直接報錯no suitable method found for of(String,String)問題在提交代碼前就被攔住了。注意release參數(shù)只支持 JDK 9 及以上版本執(zhí)行編譯目標(biāo)版本理論上可以低到 6取決于你用的 JDK 還支持到哪一檔。如果你的構(gòu)建機還在用 JDK 8那這個參數(shù)用不了只能退回source/target并且要額外配置bootclasspath來近似達到同樣的效果麻煩不少。另外補一句 Spring Boot 項目的特殊情況。如果你繼承了spring-boot-starter-parent它已經(jīng)把java.version這個屬性接管了內(nèi)部會把它映射到編譯插件的配置上。所以 Boot 項目里只需要寫properties java.version17/java.version /properties不用再單獨配maven.compiler.release。但如果項目里既寫了java.version又寫了maven.compiler.release就要注意兩者的優(yōu)先級關(guān)系容易互相打架。我個人的做法是 Boot 項目里只保留java.version一處避免兩個真相來源。4. 方案二toolchains 讓 Maven 自己去挑 JDK4.1 toolchains.xml 寫在哪兒、怎么寫方案一有個前提編譯用的 JDK 必須是 Maven 所在的那個 JDK。但現(xiàn)實中經(jīng)常有這種需求——機器上裝著 JDK 8、11、17、21 四個版本Maven 本身習(xí)慣用 17 跑但某個老項目必須用 8 編譯。這時候切JAVA_HOME會很別扭因為切完 Maven 自己也是跑在 8 上了。工具鏈機制就是為這個場景設(shè)計的它讓 Maven 繼續(xù)用自己的 JVM 運行但把編譯任務(wù)派發(fā)給另一個 JDK。工具鏈的配置文件默認放在用戶目錄下的.m2/toolchains.xml內(nèi)容長這樣?xml version1.0 encodingUTF-8? toolchains toolchain typejdk/type provides version8/version vendororacle/vendor /provides configuration jdkHome/usr/lib/jvm/jdk1.8.0_381/jdkHome /configuration /toolchain toolchain typejdk/type provides version17/version vendortemurin/vendor /provides configuration jdkHome/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/jdkHome /configuration /toolchain /toolchains幾個要點必須說清楚。type固定寫jdk這是唯一被廣泛支持的類型。provides里的version要和 pom 里聲明的能對上vendor是廠商標(biāo)識比如oracle、temurin、zulu、openjdk寫不寫看需求寫了匹配會更精確。jdkHome必須指向 JDK 的根目錄也就是bin/javac的上一級這一點在 macOS 上特別容易搞錯——要指到Contents/Home而不是.jdk那一層。這個文件放在用戶目錄下意味著它是機器級配置不進版本庫。這是個優(yōu)點也是缺點優(yōu)點是換機器不用改缺點是團隊新人的機器上如果沒有對應(yīng)的jdkHome構(gòu)建直接失敗而且報錯信息往往不夠直白。所以我認為工具鏈方案在團隊協(xié)作場景下必須配一份書面說明放 README 里否則就是給同事挖坑。4.2 pom 里的配套配置與生效驗證光有toolchains.xml還不夠這是最多人踩的坑——工具鏈不會自動生效必須在 pom 里顯式聲明使用哪個插件來讀取它plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-toolchains-plugin/artifactId version3.2.0/version executions execution goals goaltoolchain/goal /goals /execution /executions configuration toolchains jdk version17/version vendortemurin/vendor /jdk /toolchains /configuration /plugin這個插件做的事情很簡單在構(gòu)建早期插一腳去toolchains.xml里按條件找匹配的 JDK找到之后把它注冊到當(dāng)前構(gòu)建上下文里。之后凡是對工具鏈有感知的插件比如maven-compiler-plugin、maven-surefire-plugin、maven-jar-plugin都會用這個 JDK 而不是 Maven 自己的 JDK。注意source/target/release參數(shù)還是得配工具鏈只解決用哪個 javac不解決產(chǎn)出什么版本。如果provides里的version用的是通配寫法比如version1.8/version和實際寫version8/version匹配不上構(gòu)建會報找不到工具鏈。我建議在toolchains.xml里統(tǒng)一用主流寫法Java 8 就寫8別寫1.8能省掉不少莫名其妙的匹配失敗。驗證是否真的生效最直接的辦法是打開調(diào)試日志搜索關(guān)鍵字mvn -X clean compile 21 | grep -i toolchain你會看到類似Using toolchain: JDK 17 (Temurin)的輸出說明選中的是哪個 JDK。另一個驗證方式是執(zhí)行mvn -v和實際編譯目標(biāo)做對比如果mvn -v顯示 Java 是 17而編譯目標(biāo)是 8且編譯成功了那就說明工具鏈在正常工作。至于更直接的終局驗證手段我在第 6 節(jié)專門講。提示如果你的項目需要跨平臺構(gòu)建jdkHome路徑寫死會是個麻煩Windows 和 Linux 路徑完全不同。這種情況下只能給每個平臺準(zhǔn)備一份toolchains.xml或者用屬性占位符讓它從環(huán)境變量讀但配置復(fù)雜度上去了收益不一定劃算。5. 方案三與方案四臨時切換與 fork executable5.1 JAVA_HOME 與 PATH 的臨時切換最樸素的方案往往最可靠。只需要臨時驗證一下某個 JDK 版本能不能編譯直接在命令前面加上環(huán)境變量就行Linux/macOS 下JAVA_HOME/usr/lib/jvm/jdk-17 mvn clean packageWindows 的命令提示符下是set JAVA_HOMEC:\Program Files\Java\jdk-17 mvn clean packagePowerShell 下則是$env:JAVA_HOME...。這種寫法的好處是零配置、零污染用完就沒了特別適合排查到底是環(huán)境問題還是配置問題。它的缺點是每次都要手動帶容易忘而且一旦項目里還有別的插件依賴外部 JDK比如前面提到的jlink還得額外處理。這里必須提醒一個高頻陷阱JAVA_HOME和PATH里的java可能指向不同版本。Maven 讀的是JAVA_HOME但你手動敲java -version看到的是PATH里那個。這兩個不一致的時候你會看到mvn -v顯示 Java 17、java -version顯示 Java 8 的詭異場面然后懷疑人生。排查任何版本問題時請務(wù)必兩個都看一眼別只看其中一個。5.2 fork executable 的取舍maven-compiler-plugin還有一個fork配置項打開之后 Maven 會另起一個進程去執(zhí)行編譯這時可以配合executable指定絕對路徑的javacconfiguration forktrue/fork executable${env.JAVA17_HOME}/bin/javac/executable release17/release /configuration坦白說我不推薦在正式項目里這么干。原因有三個第一路徑強綁定操作系統(tǒng)Windows 上是javac.exe路徑分隔符還不一樣寫死了就沒法跨平臺第二它把機器的目錄結(jié)構(gòu)和構(gòu)建配置耦合在一起換臺機器就得改 pom第三fork會帶來額外的進程啟動開銷編譯幾百個類的時候能明顯感覺到慢。工具鏈方案在能力和可移植性上都優(yōu)于它除非你的場景極其特殊比如需要給javac傳一些進程級參數(shù)或者要同時用多個不同版本的 JDK 編譯同一模塊的不同部分否則沒必要走這條路。fork唯一我認可的用途是調(diào)試編譯器本身的行為比如你想看看javac到底收到了什么參數(shù)可以在compilerArgs里加-verbose通過fork讓輸出獨立出來看得更清楚。這種一次性的排查用完就刪不要留在 pom 里。6. 驗證怎么確認產(chǎn)物真的是目標(biāo)版本6.1 javap 與字節(jié)碼版本對照構(gòu)建成功不等于版本正確尤其是用了source/target而不是release的時候。最可靠的驗證方式是直接查字節(jié)碼的 major 版本javap -v target/classes/com/example/App.class | grep -i major version輸出major version: 61就說明是 Java 17 的字節(jié)碼。如果 jar 已經(jīng)打好了也可以從包里抽一個 class 出來看unzip -p target/app.jar com/example/App.class | xxd | head -n 1class 文件的前四個字節(jié)固定是魔數(shù)CAFEBABE緊接著兩個字節(jié)是次版本號再往后兩個字節(jié)就是 major 版本號。所以看到cafe babe 0000 003d0x3d就是 61對應(yīng) Java 17。下面這張對照表建議存下來Java 版本class 文件 major 版本十六進制Java 8520x34Java 11550x37Java 17610x3DJava 21650x41Java 22660x42Java 23670x43這張表在排查UnsupportedClassVersionError時特別有用報錯信息里給的就是 major 版本號不用去網(wǎng)上搜對照一下就知道是誰編譯的、該拿什么版本跑。6.2 用 jdeps 和真機運行兜底字節(jié)碼版本對上了不代表 API 調(diào)用就是安全的還是那個source/target的老問題。想驗證 API 層面有沒有越界可以用jdeps工具掃一遍jdeps --multi-release 17 -summary target/app.jar它會列出所有依賴的包和模塊能暴露出一些意料之外的引用。更嚴格的做法是在release參數(shù)的基礎(chǔ)上用目標(biāo) JDK 真實跑一遍單元測試。這一步可以在 CI 里做比如用 Docker 起一個目標(biāo)版本的 JDK 容器把編譯產(chǎn)物丟進去執(zhí)行冒煙測試。雖然多花幾分鐘但能擋住絕大多數(shù)運行期版本問題比上線后半夜被告警叫醒劃算得多。我自己的習(xí)慣是本地用javap快速看一眼 major 版本CI 里跑一個目標(biāo)版本的真機測試。兩個動作加起來成本很低但把版本問題的發(fā)現(xiàn)時間從運行時提前到了構(gòu)建時。7. 常見報錯排查速查表7.1 編譯期報錯怎么定位報錯信息關(guān)鍵詞真實含義處理方向invalid target release: X執(zhí)行編譯的 JDK 低于 X換更高版本 JDK或降低目標(biāo)版本Source option N is no longer supported當(dāng)前 JDK 已移除對 N 的支持升級目標(biāo)版本或換用更老的 JDK 編譯bootstrap class path not set只設(shè)了source沒設(shè)target或缺少引導(dǎo)類路徑直接改用release參數(shù)Fatal error compiling: error: release version X not supportedjavac不認識這個 release 值檢查 JDK 版本或插件版本過低找不到工具鏈 /Cannot find matching toolchainprovides條件與 pom 聲明對不上檢查 version、vendor 寫法是否一致NoSuchMethodError出現(xiàn)在測試階段測試 JVM 版本低于字節(jié)碼版本統(tǒng)一 surefire 的運行 JDK7.2 運行期報錯與 IDEA 的多套配置運行期的頭號報錯就是UnsupportedClassVersionError處理邏輯很清晰看報錯里的兩個數(shù)字一個是你產(chǎn)物的 major 版本一個是運行時的上限要么降低產(chǎn)物版本重新編譯要么把運行環(huán)境的 JDK 升上去。這里有個細節(jié)很多同學(xué)升級了JAVA_HOME但容器鏡像沒換或者反過來鏡像換了本地沒換導(dǎo)致我明明升級了啊的錯覺。排查時請同時確認三處本地mvn -v、構(gòu)建機環(huán)境、運行環(huán)境容器鏡像里的 JDK 版本。IDEA 的問題更繞因為它的版本設(shè)置有至少四個獨立入口任何一個不一致都會導(dǎo)致行為詭異。大致路徑是Project Structure Project里的 SDK 和 Language levelSettings Build, Execution, Deployment Compiler Java Compiler里的 Target bytecode versionSettings Build Tools Maven Runner里的 JRE以及 Maven 導(dǎo)入時使用的 JDK。這四處只要有一處沒跟上就可能出現(xiàn)IDEA 里能跑、命令行報錯的情況。注意最容易被忽略的是Language level和 Target bytecode version 這兩處。它們默認跟著 Project SDK 走但一旦被手動改過就會固定住之后你再換 SDK 它們也不變。遇到版本相關(guān)的怪問題先檢查這兩項有沒有被鎖死。排查 IDEA 問題時我有個簡單粗暴但有效的辦法在 Maven 工具窗口點一下 Reload然后看構(gòu)建輸出里有沒有版本相關(guān)的警告實在不行就把 IDEA 的編譯交給 Maven用mvn clean package的結(jié)果作為唯一真相。這樣可以先把 IDE 的干擾排除掉確定是配置問題還是環(huán)境問題。8. 團隊協(xié)作里的版本固化約定8.1 pom 固化加 Maven Wrapper單機跑通容易讓十個人的機器和 CI 跑出完全一樣的結(jié)果才是難點。我的做法是把三件事固定下來。第一JDK 目標(biāo)版本寫進 pom只留一處真相來源用maven.compiler.release或者 Boot 項目的java.version不允許在別的地方重復(fù)聲明。第二插件版本全部顯式聲明尤其是maven-compiler-plugin、maven-surefire-plugin、maven-jar-plugin這三個和版本強相關(guān)的。第三用 Maven Wrapper 固定 Maven 版本也就是mvnw那套東西。Maven Wrapper 值得單獨說一句因為很多人以為它管 JDK 版本其實不是。它管的是 Maven 自身的版本通過項目里的.mvn/wrapper/maven-wrapper.properties指定下載哪個 Maven 發(fā)行版。它解決的是我用 3.6、同事用 3.9、CI 用 3.8這種 Maven 版本漂移問題間接保證了插件默認版本的一致性。至于 JDKWrapper 目前不負責(zé)還得靠工具鏈或者環(huán)境約定。另外.mvn/jvm.config這個文件也挺有用可以給 Maven 自身設(shè)置 JVM 參數(shù)比如堆大小、時區(qū)、編碼。但注意它只能設(shè)置參數(shù)不能換 JDK別指望用它來指定編譯版本。8.2 CI 與本地的一致性檢查CI 上的版本問題往往比本地更集中因為 CI 環(huán)境是全新的沒有你本地那些碰巧裝對了的 JDK。我的建議是在流水線里加兩個前置動作一是打印環(huán)境信息mvn -v加上java -version一起輸出出問題時一眼就能看到二是在構(gòu)建完成后加一個字節(jié)碼版本校驗步驟用腳本解析 major 版本和期望值比對不一致就直接失敗。如果團隊里普遍存在多 JDK 需求那就老老實實上工具鏈并且把toolchains.xml的模板放一份在倉庫的docs目錄下寫清楚每個jdkHome該怎么填。新人入職按模板配一次之后就不用管了。比起每次都靠問一下老同事這套做法的長期成本低得多。最后分享一個我踩過的坑有一段時間我們的 CI 用的基礎(chǔ)鏡像默認裝了最新的 JDK隨著鏡像更新JDK 從 17 悄悄升到了 21因為release17還在編譯產(chǎn)物沒問題但某個注解處理器在新 JDK 上行為變了導(dǎo)致生成的代碼多了幾行測試用例開始間歇性失敗。這件事讓我意識到鏡像里的 JDK 版本也應(yīng)該被顯式固定比如指定eclipse-temurin:17-jdk這樣的確定標(biāo)簽而不是用latest或者不帶版本號的標(biāo)簽。構(gòu)建環(huán)境的確定性是靠一條條明確聲明堆出來的任何一處跟著最新走都會在某個時刻給你驚喜。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
这里有精品2| 六月婷婷开心| 综合色色婷婷| 色婷婷综合电影| 亭亭玉月丁香| AV在线免费播放| 69堂午夜视频最新地址| 激情丁香九九五月综合网| 色婷婷影视| 开心五月网 | 黄页免费一级视频懂色| 免费看欧美成人A片无码| 97色色综合| 久久精品色| 操逼综合激情网| 九九热自拍| 激情婷婷亚洲五月| 婷婷五月天AV| 久艹大香蕉| 狠狠操狠狠狠| 激情小说五月天中文字幕| 91日精品| 91丁香| 激情AV| 99热亚洲精品| 狠狠干夜夜干| 色五月播五月| 深爱五月天| 色五月丁香在线| 婷婷丁香五月综合| 五月天色色网站| 色欧美日| 色综合中文| 97在线日韩| 农村熟妇高潮精品A片| 久久综合影院| 五月色婷婷影院| av网站中文| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 超碰在线免费观看日韩| 日韩av手机在线观看| 狠狠穞A片一區二區三區| 久久激情网| 久久婷婷操| 91chinese在线| 五月丁香福利| 狠色狠色狠狠色综合网| 色999五月色| 激情综合婷婷五月| 日日想日日夜日日操| 激情网五夜婷婷| 91操熟女| 五月天婷婷激情干干| 色七色九九| www,8050,午夜三级| 婷婷午夜精品久久久| 91视频综合网| 五月天激情综合首页| 久久久久久综合88| 夜夜爽日日躁| 婷婷激情五月天激情| 这里只有精品9| 色婷婷五月天天天干天天操天天爽 | 白人荫道BBWBBB大荫道| 婷婷丁香六月天激情四射网| 97在线/亚洲| 久久婷婷成人| 天天综合天天做天天综合| 九九综合视频在线观看| 丁香五月激情婷婷| 亚洲啪啪视频| 99ER热精品视频| 97久久久久久久久久久| 91超级碰在线视频| 五月天色综合服务平台| 亚洲精品视频电影| 97在线观看| 毛片九九九九九九九九18| 九九色黄色| 综合超碰熟| 亚洲色色五月天| 在线五月婷婷小电影| 丁香五月社区| 中文字幕人妻一区二区| 婷婷99| 婷婷在线操| wwwwww.色| 外国碰视频网站97| 狠狠色婷| 精品久久人妻热| 曰日爽日日操| 韩日另类| www.粉嫩av.com| 九九久久综合网站| 久久香蕉影院| 久久色五月| 亚洲综合新99视频| 国产精品大香蕉| 五月丁香久久久| 黄色精品五月婷婷| 97色色色色色| 亚洲av| 激情图片婷婷| 99热在线只有精品| 影音 五月 婷婷 久久| 久久婷婷丁香视频网| 97色色婷婷| 丁香五月天BBw| 精品99在线| 7EzOBIhNq85TO| 久99久热| 无码99| 白人荫道BBWBBB大荫道| 色色日韩| 狠狠色综合网| www.粉嫩av.com| 五月丁香六月婷婷国产视频| 青青草伊人婷婷| 久/久精品99看9| 色欲色香综合网| 色噜噜狠狠色综合日日| www.xtbsty.cn.com蜜乳AV| 牛牛碰免费| 成人看片网站| 五月天色狠狠| 五月婷婷丁香| 精品无码人妻一区| 欧美顶级少妇做爰HD| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 日本久久高清| 一起草Av| 超碰狠狠操| 狠狠干婷婷| 91人人爱| 丁香六月无码播放| 麻豆精品| aa久久| 九九激情| 色色色婷婷五月| 九九视屏| 欧美色色色| 色色五月天丁香婷婷| 激情欧美丁香五月| 99热网址| 丁香婷婷六月| 婷婷亚洲久久| 97干在线视频| www.精品99| 97色色在线视频| 精品一二三区久久AAA片| 丁香婷婷人妻| 又大又粗九一在线| 婷婷激情五月色综合| 99精品综合| 午夜不卡成人一区二区| AV操一操| 五月婷婷激情综合| 婷婷九月激情| 婷色综合| 五月天婷婷网站888| 五月婷婷啪啪网| VA色婷婷| 97涩涩丁香五月天| 日本三日本三级少妇三级66| 日本色色网| 无码激情| 内射 无码 伊人| 婷婷五月天美女视频| 色色色激情网| AV网站免费在线| 色婷婷中文在线| 五月天成人综合| 丁香五月香蕉在线| aaaa久久| 成人在线精品| 性色99| 殴美97色| 9l视频自拍9l九色成人| 亚洲va欧洲va国产va不卡| 人人爽欧美婷婷久久久五月丁香| 五月天婷婷久久| 五月天自拍视频| 婷婷丁香大香蕉| 九九热免费视频| 香蕉国产2013| 婷婷黄色网| 激情五月六月| 玖操97| 91猫咪国产在线播放| 色天五月天在线观看视频| 射久久丁香五月| 久99热| 九九热视频免费观看| 欧美日韩中国| 中文字幕乱码亚洲精品一区| 久久久久婷婷| 夜夜撸天天操| 五月婷婷久久综合| 亚洲av成人在线| 日本二级毛片二级毛片| 狠狠色色| 五月天激情小说| 丁香五月狠狠在线观看| 超碰日日操| 伊人无码高清| 97久久超碰| 久久视频九九视频| 亚洲精品色色| 婷婷午夜激情| 色色网91| 亚洲成人日韩无码精品| 禁欲电影完整版在线播放| 天天爽天天摸人妻综合网| 91狠狠色| 亚洲天堂啪啪| 色色色色色五月| 狠狠操狠狠| 色五月成人| 激情五月天www| 丁香五月激情宗合网| 中文字幕性爱视频| 日韩成人影片在线观看| 五月丁香婷婷伊人日韩| 婷婷中合| 综合色在线| 色中色综合| 色婷五月天| www.av骚货| 狠狠婷婷爱| 欧美内射AA| 超碰中文字幕在线| 99久久偷拍视频| 久久九九99| 伊人五月婷婷| 97碰免费视频在线| 久久综合干| 五月天婷婷久久| 开心五月深爱五月丁香五月激情五月| 伊人丁香花综合影院| 婷婷五月蜜桃成人桃色丁香| 五月天激情小说电影| 婷婷丁香色情| 亚洲愉拍99热成人精品| 99热精品在线| 狠狠五月激情在线| 99热99热在线观看| 五月综合激情图片| www激情网| ,99视频久久| 99天堂网| bbwcuckold精品熟妇| 五月婷婷欧美| 开心激情色婷婷五月天| 99热只有精品在线观看| www.成人婷婷综合| 色综合五月天| 97色婷| 日韩啪啪网| 色综合综合色| 99热超碰在线| 高清a片基地| 91精品刘玥| 99天天操夜夜操| 五月婷婷婷色| 丝袜人妻| 婷婷六月激情啪啪| 这里只有精品9| 激情色情五月天| 九九热精品6| 天天做天天爱天天玩夜夜爽| 人人爱摸视频| 99亚州综合精品成人网| 91无码色色| 丁香五月-激情综合| 欧美日韩成人h| 九九中文色色| 久久久精品视频79| 中文字幕日韩无码制服诱或| 婷婷激情社区| 五月香婷婷| 亚洲操人| 日本天堂久久| 日本妈妈乱| 婷婷丁香五月六月激情| 久热91精品| 久久精品五月天| 久久婷婷视频| 国产色99| 国产毛片精品一区二区色欲黄A片| 欧美大肥婆大肥BBBBB| 天堂成人A片永久免费网站| 狠狠干.com| 婷婷色色丁香| 精品国产va久| 97性视频| 日本色99网站| 丁香五月天在线视频| 天天橾日日橾夜夜橾17| 色色吧综合| 色五月激情五月| 激情碰碰碰| 丁香婷婷九月| 99色免费视频| 五月天激情婷婷| 99热亚州综合| 97丁香花五月天激情小说| 久久婷婷五月综合色播| 婷婷五月色| 91九色PORNY肉丝在线| 色婷婷色99国产综合精品| 伊人久久大香蕉网| 91碰免费视频| 六月欧美综合色情| 丁香五月激情啪| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 欧美综合五月丁香六月婷| 婷色成人| 婷婷五月丁香五月| www.五月天婷婷| 99re这里只有精品首页| 五月天激情婷婷| 日本在线观看aaa 99| 色五月首页| 在线综合网| 日本熟妇乱妇熟色A片蜜桃| www.com亚洲网站在线免费| 五月丁香啪啪激情| 99精品无码| 大香av| 99热成人在线观看| 日B日潘金莲BB| 丁香五月亚洲激情婷婷射| 丁香五月色欲| 8050一级网| 思思热久久阴99| 婷婷欧美| 丁香六月婷| 国模淫穴色图| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 九九成人精品| 五月婷婷激情| AV激情五月| 黄网免费看| 日韩av在线播放综合网| 五月婷婷丁香在线视频| 五月丁香色欲| 特级片神马电影| 桃色五月天| 色女人久久| 青青草激情网| 91chinese 在线| 欧美婷婷精品激情| 色五月婷婷激情基地| 五月天婷婷无码视频| 日本欧美成人片AAAA| 蜜臀AV在线成人| 99激情网| 涩涩涩,com| 色五月激情五月| 熟女激情网| 91色噜噜狠狠狠狠色综合| 日逼影音先锋AV男人资源站| 人。妻久久| 亚州第一黄网| 99爱视频| 久操大香蕉| 久久婷婷五月综合| 久久综合网免费视频| 丁香五月天之婷婷影院| 亚洲性爱干干| 天天日色情| 六月婷婷九月丁香亚洲综合| 婷婷激情五月天小说| 婷婷久久精品| 丁香婷婷五月激情综合| 国产精女同一区二区三区久| 亚洲激情五月天| 996er热| 丁香五月婷婷操逼| 日91高清无玛| 丁香五月成人| 丁香五月天成人| 新激情五月天色播| 亚洲综合另类| 久草热久草在线视频| www.五月天。com| 91呦呦呦| 超碰碰碰碰| 丁香五月婷婷激情小说| 色婷婷五月综合激情中文字幕| 五月激情久久综合网| 久久影视婷婷五月| 九九aV| 少妇人妻凹凸视频| 91狠狠色色丁香婷婷综合久久| 丁香五月在线| 丁香桃色网| 色五月天丁香| yw国产AV| 色色色com| 亚洲激情色色| 九九RE视频在线精品| 亚洲激情网| 婷婷丁香五月亚洲免费| 就要爱综合| 99热最新国内| 中文字幕成人| 超碰国产在线观看| 97色五月天| 9精品视频在线观看| 婷婷五月天激情网| 一级二级色大片| 久久这有这里精品| 狠狠爱激情网| 肏日网在线看| 欧美性猛交99久久久久99按摩 | 99热这里都是精品| 亚洲色情激情丁香五月| 色碰干| 日韩性爱AV| 超碰人人艹| 婷婷色Av| 丁香六月天婷婷色| 俺来也综合网精品一区| 另类伊人婷婷| 丁香五月123| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 激情五月,深深爱五月| av久热| 久久久日韩特色特黄AAAA| 六月 丁香 视频| 亚洲精品午夜国产va久久成人| 久久久久久久综合狠狠综合| 色碰碰| 97搞在线| 超碰在线免费观看3 9| 丁香婷婷啪啪| 99色免费观看全部| 婷婷激情综合网| 国产成人亚洲综合A∨婷婷| 五月情四婷婷| 日韩人妻无码一区二区| 99热18| 狠狠干综合网| 婷婷色在线播放| 六月婷婷操逼| 日韩AV中文字幕在线| 国产日产亚洲系列最新| 丰满女老板BD高清A片| 日韩成人精品中文字幕| 亚洲精品影视| 久久五月婷| 色丁香五月天| 久操婷婷| 九九av| 久综合网| 99无码视频| 玖玖资源在线视频| 大香蕉久久| 99re6久热只有精品6在线直播| 色色丁香婷婷综合| 人妻久久久久久久 | 丁香五月婷婷基地| 九九色图| 91精品丝袜久久久久久| 99在线精品免费视频| 午夜成人网站在线观看| 久久久精品AV| 五月天激情综合| 九九热超碰| 噜噜五月天综合| 天天干 夜夜爽| 丁香五月婷婷啪啪啪| www久久99| 婷婷综合网站| 另类少妇人与禽zOZZ0性伦| 国外亚洲成AV人片在线观看| 一本大道伊人AV久久综合| 99在线精品免费视频| 日韩一区二区A片免费观看| 777米奇影视第四色| 99热久久这里只有精品| 九九Y精品热播| 婷婷五月在线| 9久视频| 中文精品久久久久人妻不| 人妻久久久久久久久妻久久久久久久久| 国产人妻操逼| 人人视频色| 色五月婷婷很很操| 色色色色色色色色网站| 五月天开心色色网| 99碰视频| 天天日天天摸天天| 天天操比比| 九九久久99精品免费观看www| 超碰91在线| 熟女乱论网| 一级A片天天操夜夜操| 99热在线只有精品| 六月婷婷五月丁香| 久热99久热| 综合久久综合久久| 色婷婷丁香五月色综合网| 五月婷婷亚洲色视频| 日韩欧美一级大黄网站| 色欲五月丁香| 色丁香婷婷| 情情五月天色| 久久大香蕉同僚| 五月婷婷大香蕉| 日本三级色| 六月丁香视频网站| 丁香婷婷成人网站| 欧美色综合天天久久综合精品| 91N 一起草| 婷婷五月综合激情| 人人草人| 国产AV影片| 在线观看av网站| 啪啪啪啪五月天| 九九成人| 亚洲99热| 99热思思在线观看| 婷婷视频网| 日本特黄aaaaa| 天天爱天天秀天天做| 丁香五月婷婷啪啪| 婷婷情色五月天| www.五月天婷婷姐姐| 色欲久久久久久综合网综合网| 成人无码髙潮喷水A片| 日本色久| 99爱视频在线| 丁香六月婷婷操逼网| 激情小说视频图片| 亚洲无码免费看| 色丁香五月婷婷婷| 激情99| 97日本在线播放| 99re在线视频精品,这里只有精品18,| 人人色婷婷| 怎么样可以看免费的一级av| 99色综合网| 五月婷婷深深爱| αV电影| 国产五月天激情小说| 色五月综合网| 51XX午夜影福利| 无码人妻一区| 99热在线极品极品| 婷婷激情六月天视频| 狠狠干,狠狠操| 97操视频| 91seav| 日韩无码乱轮| 色偷偷五月天| 69色婷婷| 日日日日日| 色婷婷AⅤ| 国产综合网在线| 大香焦A∨| 久久在线人妻| 殴美97色| 狠狠搞狠狠操| 玖玖激情五月天| 色五月综合资源推荐| 99人人看| 色99在线看| 停婷丁五月在线| 任你日热视频| 婷婷情色五月天| 色婷天天| 五月天久久婷婷| 99热日本| 精品一区二区三区四区五区六区| 求可以看的AV网址| 婷婷丁香五月综合久久| 99综合| 九九综合色综合| 91 九色 熟女| 人妻系列久久久久久久久久久 | 色婷婷五月开心六月综合| 亚洲色久| 五月丁香直播| wuyuedingxiang| 99热免费观看| 色色激情| 丁香婷婷五月色综合| 五月丁花六月丁香综合| 色娸娸综合网| 婷婷五月激情综合| 丁香五月婷婷欧美成人色图| 日韩av网站在线观看| 国产97色在线| 天天激情视频| 久久久久久久久久婷婷| 特黄三级片| 日本天天操| 天天狠狠色| 操婷婷基地| 99在线69| 五月婷婷九月婷婷九月婷婷| 色婷婷五月在线| 婷婷五月在线视频| 天天综合在线网| 99激情在线| 少妇做爰免费视看片| 99热这里只有精品搜| 99综合自拍| 国产精品国产成人国产三级| 久久九九国产精品怡红院| 亚洲色色色色色色色色色| 国产日产亚洲系列最新| 综合视频久久| 超碰AAAAAAV| 亚洲人妻电影| 三十熟女| 精品久久99码| 熟女激情五月天 | 伊人激情网| 色婷婷小说网| 婷婷99狠狠| www.色婷婷。com| 97碰碰在线观看视频| 国产亚洲成AV人片在线观黄桃| 久久这里只有精品热在99| 日本a片网址| 亚洲五月天色色| 亚洲精品V天堂中文字幕| 午夜丁香综合婷婷| 婷婷丁香五月综合激情小说| 亚洲九九夜夜| 色五月婷婷1| 香蕉婷婷五月| 超碰免费在线| 色色五月天激情| 免费不卡狠操美女视频网| 五月婷婷综合色啪| 亚洲色精彩| 99久热| 天天色综合综合| 亚洲激情丁香五月天色| 国产精品人妻欲求不满| 99玖玖人人| 久久久全国免费视频| 色婷婷基地| 任你日视频| 天天日综合| 婷婷六月花| 日日干夜夜撸夜夜骑| 亚洲综合激情五月久久| 五月激情婷婷综合| 玖玖精品婷婷| 欧美性爱日韩性爱| 九九精品re免费视频| 人妻无码视频网| 狠狠操狠狠插| 中文字幕无码人妻少妇免费视频 | 五月丁香综合啪啪啪啪啪| 另类精品视频在线观看| 日韩色色一区| 在线伦子99热| 久久久久99精品成人网站| 大香蕉丁香| 9久热在线精品| 久久99激情五月天| 色播激情| 狠狠色婷婷丁香五月| 99爱在线| 三级99热| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 五月天婷婷综合网| 99久久网站| 六月激情网| 日韩成人免费电影| www.人人操人人看人人想人人摸 人人人人操,COM | 亚洲A片成人无码久久精品青桔| 婷婷深爱五月| 国产毛多水多女人A片| 婷婷五月天成人| 少妇高潮呻吟A片免费看软件| 激情五月天综合网| www五月婷婷88导航| 亚洲综合色成丁香五月色| 五月丁香色停停啪啪啪| 国产女人十八水真多1| www.婷婷五月天,com| 激情性爱网站| 日本在线视频www色| 五月丁香| 狠狠色五月| 婷婷六月五月天综合| 人人摸人人搞| 激情丁香九九五月综合网| 欧美日韩999| 99精彩视频| 九月丁香网婷婷| 日本人妻久久| 91狠狠色| 天天日天天做天天操| 激情五月丁香六月| 久热九九| 综合久久丁丁香婷| 国产精品人妻在线网址| 另类视频在线| 丁香5月婷婷| 婷婷成人AV| 丁香五月天堂网| 日本韩国视频在线观看社区免费的9| 操婷婷基地| 99久久久| 蜜桃五月天| 色综合丁香| 九九99九九精品免费| 激情骚五月| 丁香五月久久| 五月婷婷婷色| 狠狠综合| 亚洲这里只有精品| 99热啪啪| 日本色色网站| 色综合久久天天综合网| 激情五月综合网| 欧美人与性动交CCOO| sewuyuetingtingiii| 国产乱码久久| 激情五月婷婷| 婷婷色色综合| 99久久久99久久91熟女| 99精品小视频| 伊人在线视频| 97综合在线| 色色色色色网站| 开心五月婷婷激情| 91丨九色丨熟女|新版| av人人操| 99在线精品免费视频| 久久伦乱| 熟女激情五月天 | 色婷婷狠狠18禁| 午夜九九九九九九| 五月丁香 啪啪啪| 五月婷婷中文字幕| 色婷婷777狠狠| 久久婷婷五月综合伊人| 亚洲成av人影院| 99热最新网址| 99热在线精品观看| 91丁香婷婷综合资源| 久久久99精品| 国产精品18久久久| 激情五月深爱五月| 五月婷在线观看| 五月天激情网址| 韩国天天婷婷| 精品国婬伦V无码久久久| A一级操| 九九九九这里只有精品| 亚洲激情综| 欧美性丁香色色五月天干干| av婷婷丁香| 五月婷婷欲色| Aaa久久| 亚洲日韩26uuu| 97五月天| 婷婷大美在线| 最近中文字幕大全免费版在线| 激情综合久久| 五月婷激情| 婷婷五月天激情四射| 欧美在线干| 婷婷的99视频网站| 五月丁香色色网| 五月天久久久| 日日操夜夜撸| 玖玖在线资源视频| 婷婷成人基地| 能看的AV网站| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 丁香婷婷色色| 影音先锋噜一噜| 亚洲精品国产setv| 六月激情婷婷| 26uuu色噜噜精品一区| 99在线免费观看| 青青草深爱激情网| 久久免费少妇高潮99精品| 五月丁香婷婷激激激综合网色播| 五月婷婷黄网站大全| 亚洲欧美999| 五月天狠狠草| 97偷拍对白视频| 深爱开心激情| 91视频精品99| 99综合| 爱草视频在线| 亚洲视频在线网| 五月丁香在线| 日本老女人黄页在线播放| 九九色婷婷| 天天日夜夜草进麻麻的子宫| 丁香五月天堂亚洲社区| 五月天成人综合| 色婷婷久久综合| 丁香五月综合| 五月婷婷片| 日韩久热| 亚洲无AV在线中文字幕| 婷婷五月天啪啪| 91丁香五月| 国产成人网址| 日韩五月丁香| 99色6爱9热| 91操黄| 99九九在线观看免费| 丁香激惜男女| 五月久久| 色9999日韩国产| 丁香五月亚洲天堂| 综合激情在线| 99久久人妻精品无码二区| 丁香五月综合在线观看| 久热大香蕉| 97久久人人人干| 狠狠干五月天| 日操| 一本色道久久88加勒比—| se99视频| 五月天婷婷人妻| 99久久综合网| 五月精品99综合| 色老久久| 丁香婷婷老熟女综合网| 色五月超碰| 99精品无码网站| 久久婷婷国产| 97碰精品| 婷婷六月丁香五月| 六月丁香VA| 日本天天综合| 亚洲综合成人网站| 日韩黄色中文字幕| 99久视频| 久久久久久人妻久久久久久久久久人妻久久久| 精品人人操| www.夜夜爱.com| 五月丁香在线| 综合久久99| 色婷婷国色天香综合| 91婷婷色| 综合99在线| 国产亚洲成AV人片在线观黄桃| 丁香婷婷六月男男| 欧美综合在线五月天色婷婷| 日本综合久久| 久久五月天 91| 国产肥白大熟妇BBBB视频| 免费黄色片子| 狠狠色丁香婷婷久久综合| 色婷五月| 玖玖在线资源视频| 五月婷婷六月丁香综合| 色天堂操| 久草婷| 最近中文字幕2019视频1| 亚洲综合九九| 色天堂在线| 五月天亭亭俺也| 激情五月婷婷色播网| 人妻系列久久久久久久久久久 | 色色亚洲| 色天天综合| 丁香久久五月天视频在线观看 | 国产另类综合| xfplayav在线| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 天天插天天| 狠狠操.COM| 九九热思思热| 丁香五月婷婷乱| 色五月天综合| 五月丁香婷婷激情久久| 精品99久久久久成人网站免费| 热99国产精品| 超碰人人草| 日韩999| 色色激情网| 久久婷婷五月丁香网| 丁香五月影视| 91热爆在线| 婷婷五月天在线看| 99久久久国产大片区| 一起草av| 综合激情开心五月| 五月婷婷丁香伦理网| wwccc久久久| 少妇口诉沐足视频播放器网址| 久久五月丁香六月婷| 五月开心婷婷| 狠狠狠夜夜夜| 五月婷婷激情中文字幕| 亚洲熟女色| 五月婷av| 天天操夜夜操| 婷婷碰碰| 人人搡人人| 8区视频在线| 天天色综和网| 五月天天天开心激情网| 亭亭社区五月天| 伊人9999| 五月天狠狠色| 五月丁香影视| 亚洲性爱AV在线| 久草五月丁香婷婷综合| 97碰免费精采视频| 色噜噜狠狠色综| 婷婷六月插屄激情| WWW,五月| 狠狠香蕉| 亚洲愉拍99热成人精品| 欧美超碰亚洲| 久久婷婷色| 激情五月天之五月婷婷| 综合激情站| 中文在线成人| 丁香在线视频| 色欲AVV| 久久精品99久久| 美妞av| 深爱激情丁香五月| 91久操| 五月激情综合网婷婷| 久久天堂| 深爱五月天婷综合| 五月天六月婷婷| www.夜夜操.com| 97成人操| 色色五月天激情| 六月五月婷婷| 五月丁香久久网| 亚洲婷婷五月天激情综合| 舔色婷婷| 国产av天堂| 伊人综合色干| 午夜九九电影| 99视频35精品视频在线观看| 少妇真实被内射视频三四区| 天天综合色丁香| 天天激情夜夜干| 69久久99精品久久久久婷婷| 国产全是老熟女太爽了| 国产97色在线 | 日韩| 久色视频首页| 亚洲AV网址| 超极99精品| 99视频色在线观看| 无人精品在线视频| 夜夜爽77777妓女免费下载| 天天插天天射天天干| 五月天婷婷色小说| 久久XX| 久久超级碰视频| 六月婷婷网站| 99精品无码| 七七九色| 五月丁香啪啪伦理电影| 久久99国产综合精品免费| 伊人色综合影院视频| 五月天激情视频五月天| 丁香久久| 99欧美| 99色在线观看视频| 婷婷九九色| 日本熟妇人妻在线| 狠狠色噜噜狠狠狠狠综合| 综合激情肏逼网| 九九热精品6| 4399啪啪视频| 色五月无码| 久久久婷| www99久久| 丁香五月婷婷在线| 激情五月天福利| 26UUU精品一区二区Com| 五月天激情小说| 色综合色色| 成人av在线电影| 91精品人妻少妇无码影院| 色婷婷AV久久久久久久| 99ree6| 色 丁香婷婷| 另类小说五月天| 性色欲情 网站| 久久久久9| 影音先锋色婷婷| 日韩人妻无码精品| 激情综合99| 五月天丁香成人社| 九月综合| 婷婷丁香花五月天| 五月婷婷婷综合网| 婷婷五月天Av| 五月天开心色情网| 五月婷亚洲精品AV天堂| 五月婷精品| 丁香五月性| wWwCom夜操wwW| 久久婷婷热| 丁香 婷婷五月| 九九热视频在线观看| 思思热思在线精品视频| 国产成人精品一区二三区熟女在线| 欧美婷婷六月丁香综合色连续高潮抽搐| 色激情五月| 五月婷婷在线视频免费观看| 五月天婷婷成人网| 六月婷婷狠狠色在线观看| 成人无码精品1区2区3区免费看| 丁香五月老师| 九九精品大香蕉| 99在线小视频| 久热黄色| 色婷五月天| 夜夜爽日日躁| 热婷婷av| 91狠狠色色丁香婷婷综合久久| 91狠狠综合网| 国产67194| 开心五月综合激情综合五月| 国产91在线视频| 五月综合丁香婷婷| 久久草人妻| 丁香六月婷婷色XXXX| 欧美成人色婷婷| 4399亚洲视频| 开心五月激情网| 久久五月婷天天干| 97婷婷在线视频| 丁香六月激情综合| 南京搡BBBB搡BBBB| 丁香婷婷婷婷十二月在线观看视频| 99久视频| 99视频色在线观看| av免费在线观看0| 色99色| 袁子仪视频观看| 69人人操人人爽| 99久热| A网在线欧洲| 五月天综合激情网| 99在线精品免费视频| 开心激情网五月| 欧美日本黄色| 欧洲MV日韩MV国产| 色婷婷久久| 久热2025无码| 日韩精品99久久| 久久久久久人妻| cc精品国产性传播| 性爱综合网| 99久久婷婷国产综合亚洲| 色啪综合| 精品草原久久视频| 大香蕉五月丁香| 操精品9| 亚洲色视频| se99视频| 777久久综合视频| 丁香九月激情久久| 人妻丰满精品一区二区A片| 五月激情小说| 久久婷婷欧美| 五月天大香蕉| 色播五月丁香综合| 亚洲精品无码一区二区| 9九色首页| 99久久综合网| 成人精品在线| 亚洲成人中文字幕| XX色综合| 亚洲1区| 强伦轩人妻一区二区电影| 激情婷婷综合| 久久婷婷色色| 日本人妻操| 日逼AV影音先锋男人资源站| 色综合婷婷| 国产精品VA在线| 日 日干 日日做| 五月婷婷综合激情| 久久91久久91色欲精品| 九九99精品视品| 亚洲激情久久| 综合色播| WWW,五月| 狠狠干在线| 日韩十国产极品久久| 99热精品在线播放观看| 激情四射网| 婷色视频| 伊人成综合五月婷婷| 色网五月婷婷| 丁香六月婷婷久久综合| 五月婷婷婷婷| 六月婷婷激情图片| 五月婷婷导航| 激情www| 丁香五月综合网亚洲综合欧美狠狠 | 六月色丁香中文字幕| 婷婷五月天Av| 夜夜躁狠狠 | 五月天伊人手机在线播放AV| 国内婷婷丁香社区在线播放| 四色综合网| 色婷五月| 99精品在线播放| 99热在线观看精品| 夜夜爱影院| 婷婷久久影院| 美欧成人视频| www.激情com| caopeng97人人| 激情丁香五月AV| 欧美日韩中国| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 激情www| 六月综合婷婷开心伊人| 草草视频91| 色综合伊人网| www.婷婷| 五月天综合网| 极品人妻VIDEOSSS人妻| 亚洲成人AV高清字幕| 婷婷在线五月综合| www91色网站| 亚洲综合成人网站| 大香蕉婷婷丁香| 黄网网站在线播放| 五月丁香久久| 久久老码第一| 人妻videos人妻高清| 开心色播色五月婷婷| www.99热. com这里只有精品| 婷婷五月天六点丁香五月| 国产精品人人妻人人爽| 人妻少妇色综合| 久九色| 五月天激情小说| 久久精品凹凸分类| 伊人天堂婷婷| 99久久99视频| 人人色人人摸人人看| 久久五月丁香激情综合| www.ppypp| 色综合五月| 五月丁香免费看| 97夫妻超碰| 黄色91在线观看| 日本九九九九| 69午夜成人影片| 情趣视频66| 色综合久久99色| 九九热精品| 色婷小说| 婷婷永久在线| 538久久| 色色色综合色| 成人丁香五月| 伊人免费视频9| 97色97干| 天天日狠狠| 色综合色综合色综合色综合| 五月婷网| 精品成人在线| 欧美大道不卡| WWW,五月| 久久桃花网色婷婷| 97色啪| 性 色 婷婷| 亚洲无码色色| 99热只有| 日本天堂网站99| 婷婷综合在线| 久久精品亚洲一级牲爱综合| 婷婷五月天综合网| 色综合久久久无码中文字幕999| 成人免费高清在线播放| 婷婷五月天激情偷拍| 天天爽,夜夜爽| 久久免费精彩视频| 91干网| 狠狠色激情在线| 9有码中文| 九九热123| 91chinese在线| 激情深爱五月| 五月婷婷六月丁香| 五月婷婷综合影院| 丁香伊人综合| www久| 久久五月情| 婷婷六月中文字幕| 天天干天天色综合| 色99免费视频中文| 狠狠色婷婷丁香六月| 五月天丁香综合| 碰人人97| 五月婷婷久久内射| www激情| 婷香狠狠爱五月| 色综合性视频| 激情五月天社区| 99日精品视频| 久热A| 久久综合99综合| 99re思思热在线视频| 99爱爱网| 免费V片在线| 精品99爱免费视频在线观看| 怡红院视频| 亚洲啪啪网| 另类综合婷婷五月天欧美视频| 国产av天堂| 只有精品视频在线观看| 色你久久| 色综合香蕉| 丁香婷婷色情社区成人小说| 99热国品| 99久99热| 九九热a| 色综合色婷色基地| 99免费视频精品| 99免费热视频在线| 五月婷婷六月丁香激情| 日韩精品一区二区三区,四区,五区视频| 天天爽在线视频| 99热这里都是精品| 日韩肏屄网| 天天干夜晚夜操| 五月婷天堂视频| 性天天中文网| 在线免费视频caop| 99色播| 丁香婷婷天堂| 五月丁香久久久| av高清无码| 亚洲爱爱无码婷婷色五月| 天堂成人A片永久免费网站| 激情五月天黄色小说| 99久久综合网| 中文字幕成人| 另类激情综合| 婷婷欧美色| 欧美人与性动交CCOO| 丁香婷婷免费| 99精品偷自拍| 国产探花AV在线| 丁香五月天大香蕉啪啪| 五月开心激情网| 久久综合55| 婷婷六月天激情| 99玖玖在线视频| 久久久久9| 久久99热这里只有|