免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
亚洲欧美成人在线| 免费成片在线观看| 婷婷五月综合视频免费播放| 九九这里只有精品在线视频| 婷婷丁香黄色| 婷婷五月天av| 亭亭色色五月天| 久草久青福利| 九艹在线| 99热www| 五月婷婷av| 五月丁香在线精品| 一级片sese片.COM| 久久性操| 涩九九九九| 丁香激情网| 中文av网| 婷婷色爱| 国产精品久久久60086| 狠狠色97| 色99在线看| 九九热超碰| AV性爱网| 日韩1区2区| 综合综合色色| 五月天丁香六月综合| 色婷婷啪啪综合网| ZpRSw| 日本五月婷婷| 色婷婷亚洲六月婷婷中文字幕| 97色碰| 九九在线91| 色婷婷六月| 丁香五月六月| 九九热在线精品视频| 色婷婷五月天激情久久| 综合色天天| 91精品婷婷国产综合久久| 丁香六月婷婷激情| 日韩小视频在线99| 999九九九久久久99HD| 香蕉AV福利精品导航| 亚洲AV网址| 婷婷免费视频| 热五月婷婷| 免费视频这里只有精品| 久久精品亚洲热| 丁香五月aV| www.久久爱| 综合色影院| 一区二区aV电影免费看| 六月丁香中文字幕| 激情图片亚洲| 国色天香伊人狠狠色| 66精品国产成人| 99久久视频| 久操大屁股女人av| 亚洲第一成人无码A片| 久久大香蕉视频| 91在线人| 色婷婷综合久久久久| 久久久久8888| 狠狠操.com| 《诡秘之主》在线观看| 婷婷丁香五月欧美人| 久久成人性爱| 妻久久人久久| 大香蕉520| 色色色在线观看| 天天日夜夜拍| 婷婷色网| 操日本99| 啊V视频在线观看| 99久在线视频| 婷婷黄色五月天在线视频| 丁香五月婷婷亚洲色图| 婷婷六月色播| 99在线精品免费视频| 五月丁香综合在线| 亚洲综合五月天婷婷| 日韩欧美成人网| 九九热青青草| 久久99热只有精品| 婷婷精品性视频| 激情亚洲网| 欧美综合激情丁香五月六月婷| 五月婷婷激情中文字幕| 中文字幕丰满孑伦无码专区| www,com,五月色色| 五月婷婷熟女| 综合色五月| 99热最新| 在线你懂的亚洲欧| site:feetmall.com| 99热在线观看精品免费| 综合网天天| 青青久在线视频免费观看| 99热免费18| 丁香五月激情网| 99色这里| 日本丁香五月| 成人做爰高潮A片免费视频| 婷婷最新地址| 99国产er热视频| 五月精品免费XXX| 色激情五月天| 五月丁香六月激情网站| 综合天天综合| 久久婷婷综合国产| 岛国AAAV| 亚洲蜜乳AV| 香蕉97碰碰碰超视精品| 天搞天天天天天| 五月激情开心婷婷| 99色干| 免费亚洲婷婷| 久久婷五月婷| 婷婷的色色五月天| 天天透天天干| 久久思思热视频| 五月丁香狠狠爱| 成人国产网| 超碰色婷婷| sewuyue第四色| 丁香五月激情五月| 91怕怕网| 色5月婷婷| 五月婷色| 色婷婷成人网| 五月丁香婷婷三级| 天天干夜晚夜操| 五月天开心激情综合网| 思思热久久艹| 国产免费一区二区三区三州老师F1F1.CC| 少妇性按摩无码中文A片| 伊人婷婷91| 影音先锋 91工厂| 久碰视频| 丁香 婷婷 激情 综合 五月| 久久人妻精品| 做爱夜夜干天天操| 五月天精品| 久久婷丁香五月| 天天日天天爱天天噪| 99色网站| 欧美噜噜免费观看| 婷色五月| 热99热| 九九色热| 玖玖资源站国产| 丁香五月激情啪| 欧美三级视频下载| 精品久久人妻| 女婷久久| 色婷婷丁香五月| 五月婷俺去也| 国外亚洲成AV人片在线观看| 久久机只有这里精品| 久久网站免费亚洲| 久久婷婷五月天| 久热成人| 色综合久久久久| 91色久| 色在线99| av婷婷丁香 六月| 久99热| 欧美超级视频97| 久久婷婷视频| 超碰人人艹| 97视频久久| www,色婷婷| 六月激情综合| 婷婷六月丁香激情| 国产午夜精品AV一区二区麻豆| 精品一区二区三区四区五区六区介绍 | 天天日狠狠| 色婷婷五月综合| 婷婷她六月天| 五月丁香六月激情| 丁香五月区| 人人操AV| 激情五月婷婷视频| 婷婷五月丁香五月| 七七九九色色| 丁香色影院| 欧美色色色色色色色色色色| 久久五月天激情婷婷| www.久久| 久久久精品人妻录| 色婷婷狠狠爱| 激情五月天社区| 欧美丁香六月在线观看视频| 五月婷丁香久久综合| www.夜夜操| 色婷婷99| 99精品偷拍视频| 人妻AV在线观看| 婷婷五月天综合激情| 丰满老熟妇BBBBB搡BBB| 91热视频色网站| 婷婷久久五月| 色玖玖导航| 岛国av网站| 激情五月丁香激情综合网| 狠狠色九月| 五月天婷婷丁香| www.lingjunshare.com| 五月天丁香六月综合| 熟女人妻视频| 六月丁香久久| 综合久久综合| 五月丁香六月色| 思思热久久阴99| 激情超碰网| 激情综合网址| 亚洲成人在线五月天| 婷婷在线精品| 日韩美女羞羞网站在线观看| 激情综合网激情五月俺也去| 日韩成人网址| 亚洲无码另类| 欧美色色色色色色| 亚洲A色| 97人人射| 97人人干。| 丁香五月激情网| 色五月婷婷五月| 亚洲人人96@| 玖玖精品婷婷| 日韩操啪| 亚洲激情Av| 五月婷在线| 丁香婷婷九月| 五月丁香久久呀| 亚洲精品V天堂中文字幕| 六月激情网| 99热这里只有精品69| 色噜噜狠狠色综合成人99| 黄网在线免费观| 一级黄色影片| 丁香六月啪啪| 天天日天天插| 粉嫩AV久久一区二区三区| 99热精品99| 五月天激情婷婷丁香| 色五月综合网| 婷婷导航| 婷婷五月天AV网| 久久九⑨| 啪啪99| 五月婷婷亚洲综合在线| 五月激情久久| 激情五月婷黄版| 婷婷字幕在线| 在线视频区| 在线网黄| 色婷婷偷拍| 国产阿姨日皮艹逼内射视频| 婷婷六月色丁香视频在线观看| 久久99综合| 偷拍91九色| 婷婷久久天堂网| 亚洲天堂色| 欧美成人在线观看| 人妻在线观看视频| www,色综合| 丁香六月欧美| 91狠狠色色丁香婷婷综合久久| 久久久精品99| 一起草Av| 亚洲 精品 综合 精品| 黄色99视频| 婷婷五月天天天日日夜夜| 久久天天天| 色婷婷久久综合久色综| 色婷婷五月六月丁香综合视频| 日本综合色图| 99九九99九九九视频精彩| 丁香五月婷婷影院| 五月天婷婷香蕉狠狠超碰综合| 丁香五月婷婷色偷偷| 91久久免费| 色婷久| 成人永久免费视频在线观看| 久热9| 天天五月丁香五月| 久久五月婷天天干| 亚洲人妻Av| 淫视馆aV二区一区| 91干婷婷| 91九色精品女同系列| 99亚洲天堂| 欧美天天爽| 五月四色婷婷| 超碰二区| 久久综合99综合| 色综合久久久无码中文字幕999| 午夜微拍福利| 91精品婷婷国产综合久久| 欧美婷婷六月丁香综合色| www.久久五月天.com| 2025天天操| 久久婷婷六月综合综合色| 亚洲综合久| 婷婷五月天AV| 啪啪五月综合| 六月色色| 激情色播| 超碰免费电影| 五月天色播网| 91人碰| 天天综合网在线| 七月婷婷色香综合网| 五月天久久激情| 噜噜色天天开心| 91婷婷五月天综合视频| 婷婷激情九月| 一区二区传媒视频| 久久在这里有精品| 99精品自拍| 日韩二区搞逼插逼毛片| 五月综合久久| 五月激情站| 99久久网站| 操操熟女| 99热这里只有精品18| 色情五月婷婷| 九九精品热播| 久久久久思思热| 日日夜夜婷婷| 色婷婷久久综合久色综| 婷婷五月激情中文字幕| 色欲色欲久久宗合网| 九九九色综合| 美欧成人视频| 超碰京东热av男人的天堂| 丁香五月天天| 欧美激情伊人| 色婷婷色人人射| 五月间天堂综合| 人妻内射麻豆视频| 丁香五月天堂网| 久久99免费视频| 激情5月婷婷狠狠干| 97精品在线| 超级碰碰99| www.狠狠色.com| 婷婷五月天AV| 99久久综合网| 日韩婷婷| 丁香婷最新动态| 日韩在线一级| 久Se视频在线观看| 日韩黄色电影| 99玖玖在线视频| 色婷婷丁香| 国产精产国品一二三在观看| 五月天婷婷在线啪啪视频| 婷婷久久亚洲| 异能之下短剧免费观看全集| 97人人干人人操| xxxx久| 激情五月婷婷综合| www.99精品视频| 六月丁香婷婷色综合| 久色视频| 激情五月综亚网| 大香蕉综合在线| 另类图片色五月| 秋霞A V毛片| 丁香婷婷色色| 五月婷婷激情久久| Av性爱网站| www.99在线| 天天综合久久| 欧美日本免费一道免费视频| 99久久免费精品| 色吧网综合| 亚洲成人在线播放| 色婷婷欧美在线| 天天操天天操天天操天天操天天操| 久久天堂| 丁香五月天AV在线| 免费无码毛片一区二区A片| 色色色在线免费视频| 中文字幕丰满孑伦无码专区| 亚洲最大五月天成人网| 日韩二区搞逼插逼毛片| 九九婷婷网五月天| 99热国内精品| 桃色成人网| 丁香五月六月激情| 在线观看996精品| 337p大胆噜噜噜噜噜91Av| 99视频精品全部免费看| 七月丁香五月婷婷在线| 六月婷婷视频| 婷婷五月丁香狠狠| 亚洲在线播放| 五月婷婷久久综合| 天天高潮夜夜爽| 激情伊人网| 久久久婷婷| 无码天天操| 怡春院天天干| www.狠狠| 99久久玖玖| 五月天丁香网站| 99熟女| 五月天婷a| 97色色综合| 天天爽人人综合免费7799| 99re在线视频精品,这里只有精品18,| 欧美综合五月天婷婷tin| 婷婷丁香十月| 激情五月亚洲综合网| 久久日韩婷婷五月| 777影视理论片大全在线观看| 五月丁香六月婷婷久久久综合| 狠干综合| 亚洲色图欧美色图日本视频| 欧美久久网| 噜噜噜噜噜日本视频| 国产中文字幕在线视频免费观看| 久久久com| 五月花激情| 综合五月草| 六月婷婷最新网址| 少妇人妻丰满做爰XXX| 婷婷激情图片| 丁香六月视频免费观看| 日操| 成人在线网| 色色色丁香| 色激情五月| 色五婷婷开心缴| 婷婷5月色| 狠狠久综合| 九九亚洲| 欧美精品18| 九九热视频这里只有精品| 欧美99热| 国产裸舞福利资源在线视频| 97中文在线| 亚洲国产网址| 这里只有精品96| 深爱激情综合网| 激情六月婷婷| 欧美黄色韩日网| 久久婷婷在线| 日日夜夜噜噜爽爽| 婷婷五月天无码视频| 久久久性爱视频| 婷婷丁香五月综合久久| 香蕉久日夜| 色激情五月天| 中文字幕无码人妻少妇免费视频| 久久99网站| a在线观看| 狠狠操狠狠插| 五月开心久久| 久久综合影院| 99资源在线视频| 六月合五月婷| 月婷婷婷婷五月| 婷婷五月激情在线视频| 26UUU欧美| 亚洲人人操BD| 伊人五月天在线| 99热无码| 日日肏天天操| 99成人精品六| 午夜爱爱爱成人| 五月天天天开心激情网| 开心五月婷婷在线视频免费观看| 五月丁综合在线观看| 天天在线久久综合| 丁香激情六月天婷婷| 午夜丁香六月婷| 色五月婷婷、老熟女| 丁香久久AV| 五月丁香六月欧美综合| 色婷婷五月综合网| 五月天播播| 这里只有精品视频在线| 爆乳熟妇一区二区三区爆乳照片| 99这里只有精品|v| 天天日天天色| 182.t午在线观看| 九月色婷婷婷| 五月天婷婷网站888| 久99久在线| 久热久色| 五月色精品| 欧州色色| 五月激情站| 亚洲乱码在线观看| www.婷婷五月天| 91男同视频| 久久99精品久| 国产成人综合网| 人人玩人人橾| 综合久久六月| 狼人久草| 亚洲六月综合激情久久下卡| 97干在线播放| 思思色综合网站| 日本久久爱| 五月婷六月| 激情五月天网站| 色九四色| 久久三级视频| 色婷婷六月丁香综合欲精品| 99热综合| 超级碰碰99| 日本婷久久| 激情五月综合ì香亚洲| 99国产小视频| 99热精品在这里| 67194线路二在线观看| www.久9| 另类五月婷婷| 色婷婷五月天久久| 超碰99在线| 色五月色五天色情网址| 国产中文亚洲欧美日韩性交| 5月丁香婷婷激情网| 另类激情中文| 九九热婷婷| 性 色 婷婷| 五月丁香网站| 丁香五月婷婷社区| 99er这里只有精品| 秋霞AV淫| 婷婷综合天堂| 亚洲五月丁| 超碰97人人操| 91视频久久久| 另类综合国产| 狠狠狠狠狠狠狠狠| 色五月婷婷自拍| 丁香六月成人网| 丁香色色网| 超碰人人操人人9| 婷婷丁香五| 任你爽精品免费视频6| aaaa久久| 婷婷播播五月天| 色综合99| 天堂久久精品| 亚洲综合另类| 91视频久久久| 五月婷婷丁香俺日污视频| 色伊人婷婷| 99久久偷拍视频| 9九热视频| 激情五月婷黄版| 亚洲人操亚洲人| 色婷婷成人丁香| 伊人国产婷婷五月天| 色五月婷婷内射| 99精品在线播放| 日本久久婷| www.久久66| 久久怡红院| 激情五月天色色网| 97人人草| 狠狠五月激情在线| 五月婷婷丁香五月| 五月婷婷 欧美| 99婷婷| 久久久91| 婷婷天天日婷婷| 天天做天天摸| 五月天色欧美| 天天影院色| 最新婷婷五月丁香| 五月丁香六月综合激情无码软件亮点| 白度黄视频| 六月丁香婷婷六月激情综合| 亚洲av另类在线观看| 综合久久五月| 丰满人妻妇伦又伦精品国产| 婷婷色色播五月天| 五月天婷婷影院| 婷婷五月天另类视频| 天天色天天日| 啪啪91| 色五月在线观看| 九九热在线观看6| 婷香五月激情视频| 五月丁香啪啪激情| 久久桃花网色婷婷| 99热亚洲精品| 五月丁香花视频| 五月丁香综合激情网| 好看的国产精品| 亚洲热热视频| 五月丁香 啪啪啪| 成人精品网站在线观看| 日韩成人电影在线播放| 婷婷五月天堂网| 五月婷丁香| 99热这里只有精品2016| 极品少妇婷婷五月| 五月婷婷色色| 小视频一区| 免费看片在线观看| 激情欧美五月丁香| 五月天婷婷成人资源站| 久久久久久久8| 丁香五月婷婷在线| 女力报到正好爱上你| 婷婷丁香五月色偷偷| 五月丁香婷婷色| 国产日日夜夜操| 婷婷色狠狠| 综合激情五月丁香| 五月婷婷五月天亚洲无码| ′久久99一| 五月丁香亭亭操逼| 久久 这里只有精品1| 九月丁香八月婷婷久久综合久97| 这里有精品| 欧美成人精品一区二区 | 色99在线观看| 99爱无码| 丁香五月天在线观看视频| 色级停停| 99热这里是精品| 日日噜狠狠色| 《战争与艾拉》完整版| 二级黄色毛片| 婷婷六月激情| se婷97| 另类图片激情五月| 五月激情婷婷播播网| 色欧美影院| 99ER热精品视频| 五月婷婷视频在线观看| 天天做天天要天天爽| 99操无码视频观看| 性无码专区无码| 久久这里只有精品99| 青青操avbb| av激情在线| 91精品国产综合久久久不卡电影| 99在线观看| 婷婷五月婷| 美妞av| 婷婷久久丁香五月| 9精品国产在热久久| 9+1视频网址| 97操碰在线视频| 亚洲久热无码| 九九婷婷五月天影视| 亚洲最大激情无码| 天天色天天日天天舔| 天天激情视频| 色色精品色| 婷婷五月天久久综合88| 色综合中文综合网| 色网五月婷婷| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 99操碰| 婷婷五月天小说网| 三级大香蕉网| 久热最新视频| 色久五月| 五月丁香色婷| 婷婷五月天com| 五月丁香999| 99热精品在线| 99热只有精| 这里只有精品日韩精品| 啪啪91| 国产婷婷综合| 五月丁香九九| 综合99久久天天综合| 综合aV在线| 久久久国产精品黄毛片| 国产成人精品一区二三区熟女在线| 思思re99视频在线观看| 五月婷婷中文字幕| 久久婷婷六月综合综合| 九九99久久| 日本一级一级一级一级| www.五月天| 九九热只有精品| 97碰免费视频在线| 五月天狠狠| 99九九久久| 三男玩一女三A片| 国产亚洲精品久久久久久久久动漫 | 五月天婷婷激情| 人妻少妇色综合| 亚州操人在线视频| 欧美日韩成人在线观看| 丁香婷婷五月| 少妇出轨做爰高潮A片| 丁香五月之久操视频| 婷婷综合国产| 99热在线观看精品| 色激情综合狠狠婷婷| 丁香五月婷婷激情尤物| 这里只有精品视频一区| 丁香五月天精品| 性生活久久人妻| 婷婷五月视屏| 91九色大屁股| 伊人狠狠操| 天天天日天天天干| 婷婷久久色| 在线看片av| 午夜不卡久久精品无码免费| 91丨九色丨首页| 综合色网站| 99热免费网站| 五月丁香va| 激情五月婷婷丁香综合网| 狠狠色丁香婷婷久久综合| 婷婷网五月天| 婷婷香蕉香| 9191avse| www,五月丁,com| 五月丁香六月| 狠狠精品干练久久久无码中文字幕| 最近中文字幕大全免费版在线| 日本A片一区| 精品久久99码| 成人五月天视频播放| 99热日韩| 丁香亚洲色综合| 97人妻碰碰碰久| sewuyuejiqingwang| 色色欧美色色| 久久久精品人妻| 婷婷五月激情综合网| 黄网在线免费观看| 97色色在线视频| 九月激情网| 天天综合天综合久久网| 99超级碰免费视频| 婷婷婷五月天最新综合你懂的| 亚洲色五月| 东京热五月婷婷| 婷婷五月丁香综合| 天天日日综合| 天天射影院| av九九| 九九在线精点品| 激情内射人妻1区2区3区| 成人国产综合| 看久久性爱视频| 99热这里只有精| 97热在线精品| 狠狠狠狠狠狠狠狠| 最近中文字幕2019视频1| 在线天堂9| 日屌日日操日日色| 国产美女无遮挡裸体毛片A片 | CHINESE熟女老女人HD视频| 色婷婷在线视频| 久久久久久久久久婷婷| 成人看片网站| aaa久久| 亚洲人成网站999综合| 五月婷婷成人网首页| 激情小说视频图片| 久久9精品视频| 色色色成人网| 9国产在线视频| 亚洲性爱干干| 久久五月天婷婷| 综合久久97| 99热这里只有精品9| 十二区无码| 五月天婷婷深深爱| 婷婷五月综合国产精品| 天天综合图片| 亚洲无AV在线中文字幕| 久久亚洲色导航| www.99热| 激情的五月婷婷蜜桃| 狠狠干五月天| 日韩五月婷婷| 超碰97人人操| 久久激情五月| www.五月天婷婷| 激情婷婷丁香五月天小说| 婷婷色导航| 91久久1118| 五月婷婷色色| 天天综合五月天| 色在线99| 色婷婷狠狠爱| 激情丁香五月婷婷| 久久6这里只有精品| 拍真实国产伦偷精品| 在线五月色播| 五月丁香成人网| 99无码免费视频| 亚洲精品V天堂中文字幕| 婷婷五月天视频小说| 久久人人做人人妻人人玩精品va| 久久网思思| 美女视频图片久久91| 亚洲第一第二网站| 欧美丁香六月在线观看视频| 思思re99视频在线观看| 91久久久久久久久久| 超碰资源在线| 九九性视频| 天天骑天天操| 手机激情网| 国内在线99视频| 久久婷丁香五月| 五月色综合| 欧美性色A片免费免费观看的 | 性色欲情 网站| 人妻丰满精品一区二区A片| 激情五月天小说视频| 婷婷狠狠爱| 五月激情婷婷国产精品久久久久久| 天天五月情| 国产精品久久久久久久久久免费| 99久久综合| 激情五月天色爱| 婷婷综合偷拍| 伊人在线视频| 婷婷五月天激情五月天网站| 婷婷国产欧美97| 99久久久99久久91熟女| 丁香5月啪啪| 91xxxx九色| 99热超碰| 直接看的av| 五六月婷婷| 91操女| 婷婷久月| 伍月婷丁香花全集| 大香蕉久| 日韩小视频在线99| 996er热| 99爱在线视频观看| 操操操操操操婷婷五月天| www.金莲av| 黄网在线播放| 五月天婷婷中文字幕在线播放| 久色五月天| 综合天堂AV久久久久久久| 丁香六月狠狠干| 天天久久综合| 婷婷在线免费| 丁香五月婷综合| 久久九色| 五月丁香啪啪综合| 五月社区丁香| 婷婷色网站| 99啪视频在线观看| 香蕉久久av一区二区三区| 综合久久五月天| www.五月天性.com| 久久免费9| 五月丁香 狠狠爱| 免费精品99| 天天爽天天日| 五月丁香婷婷啪啪综合网| 大香蕉久艹| Aα在线免费观看| 在线中文AV| 色五月激情综合网| 97操操操| 色婷婷综合影院| 26uuu另类亚洲欧美日本一| 亚洲综合激| 成人在线精品| 激情婷婷激情在线不卡| 亚洲精品无人区| 天天综合精品| 久久五月综合| 97精品在线| 亚洲五月天狠狠| 天天日日人| 久久女婷| 99热最新| 超碰成人电影| 五月亭亭色| 97sese婷婷| 精品综合网在线| 日本视频不卡123区| 色九九综合| 色婷网| 五月天激情图片| 久久久久9999| 九九色热| 六月婷婷久久| 五月天天综合| 综合色影院| 在线天堂9| 大香蕉久久久| 五月天激情久久| 五月婷婷丁香五月婷婷丁香| 天天干天天做| 97色天堂| 99热偷拍| 人妻AV在线观看| 99ri国产在线| 天天插天天爱| 天天操综合网| 丰满少妇猛烈A片免费看观看| 狠狠精品干练久久久无码中文字幕| 色噜噜狠狠色综无码久久合欧美| 超碰v| 七月丁香婷婷 色色| 色情激情五月婷婷| 99免费偷拍视频| www.五月丁香| 99热最新网址| a网站免费观看| 激情五月综合网| 一本大道嫩草AV无码专区| 五月天成人免费视频| 五月丁香| 日本二级毛片二级毛片| 99热国产在线| 国产肏屄大片| 色五月婷婷色| 亚洲激情丁香五月基地| 五月天久久丁香| 日日操天天操| 伊人爱爱日本| xxxx五月激情| 男人综合网| 这里只有精品视频一区| 天天天天天天操| 播播网色播播| 牛色色碰| 色五月丁香五月婷婷五月成人网| 五月宗合激情网| 玖玖午夜视频| 9999久久久久| 亚洲传媒在线观看| 色噜噜狠狠色综合网| 思思久ren热| 亚洲激情网站| 色综合丁香| 亚洲操操| 97操资源婷婷| 99riAv1国产在线观看| 亚洲性爱99| 婷婷五月天欧美| 99久久性爱| 五月丁小婷婷激情四射| 9热久久| 天天射影| 丁香婷婷成人网| 99热精品在线观看| 天天色情站| 成人在线网站| 激情五月丁香激情综合网| 婷婷五月电影| 日韩青青| 激情综合5| 日本五月婷婷| 欧美日韩欧美| 五月丁香综合激情网| 亚洲五月婷天天操| 香蕉狠狠爱视频| 国产性爱大片久久| 五月天激情站| 五月天激情四射网站| 三年高清大片免费观看国语| 久久久久激情| 天天做天天摸| 日本欧美成人片AAAA| 久久99草五月婷婷| 亚洲综合视频天天精品| 99色色| 丁香六月婷婷综合激情欧美| www久久99| 色婷视频| 91精品久久久久久久久| 天天插天天| 色婷婷五月综合| 欧美超级视频97| 五月天激情.com| 91色色色| 色婷婷狠狠| 色婷| 综合一区二区三区| 国产激情综合五月久久| 亚洲国产成人AV在线| 99免费视频在线观看爱| www,黄色在线,con| 99视频在线观看欧| 99精品偷自拍| 99热日本| 五月开心播播网| 婷婷亚洲激情在线观看视频| 亚洲中文字幕av| 极品色丁香| 五月天婷婷在线AN| 91无码一起草| 另类小说婷婷色| 国色天香成人网| 婷婷五月天成人导航| 99热最新精品| 亚洲五月激情| 五月婷婷导航| A级毛片高清免费不卡播放谢谢谢谢| 思思热精品在线观看| 婷婷五月影院| 国产噜一噜天天噜| 91chinese在线| 婷婷午夜丁香| 亚洲午夜视频| 欧洲亚洲免费视频9 | 色婷婷丁香五月综合| 疯狂做受XXXX高潮A片动画| 永久的网站AAAA| 综合色色色| 色婷婷久久综合久色综| 丁香五月婷婷AV| 日韩成人电影在线播放| 丁香五月另类小说| 停停六月 综合| 婷婷五月婷婷| 91精品久久久久久久久| 五月天涩涩| 蜜乳人妻一区二区三区| 精品色色| 狠狠色丁香久久综合婷婷亚洲成人福利| 国产色五月| 丁香久久九九99| 综合网啪| 91精品久久久久久综合五月天| 亚洲热视频| 影音先锋激情网| 色优久久| 色综色五月天婷婷| 久久免费干| 99er精品视频| 六月丁香激情| 91碰超| 五月激情小说网| 成人欧美一区二区三区在线观看| 老美AA片| 久机视频这只有精品| 97操碰在线视频| 亚洲成人网站在线观看| 婷婷五月天国产手机在线视频观看| www.婷婷五月| 五月婷婷co.m| 九九色中文| 丁香五月在线| www狠狠| 香蕉人妻AV久久久久天天| 五月婷婷综合成人| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 丁香五月婷婷激情蜜桃| av操一操| 五月天久久网站| 俺也去婷婷五月天第五色| 色五月情| 天天影院色| 91久久久久久| 青青久久五月| 9久国产精品| 夜夜天天久久婷婷| 4399精品一区二区| 99久久久久| 深爱激情五月天婷婷网| 91成人电影| www.色五月| 亚洲熟妇无码乱子AV电影| 激情综合播播| 色婷婷人人| 99在线资源| www婷婷亚洲| 久久精品99国产精品日本| 色色婷婷综合网| 久9热视频在线观看| 色五月在线观看| 337午夜福利| 色欲丁香久久| 激情网婷婷五月天| 另类五月婷婷| 亚洲成人AV在线| 99色热| 亚洲色网址| 五月丁香成人网| ou洲色吧| 91人妻PORNY九色大屁股| 99精品爱| 亚洲成人av在线| 婷婷五月丁香亚洲| 婷婷色六月| 五月激情婷婷国产精品久久久久久| 久久99这里只有精品| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 五月婷婷激情| 欧美人人草| 婷婷六月色情| 色婷婷五月丁香在线观看| 日本综合久久| 99在线视频资源| cao久久| 九九Y精品热播| 碰超亚洲| 天天日夜夜曹| 亚洲AAAA网| 丁香五月www| 爱99干99| 丁香五月av| 无码人妻一区二区一牛影视| 天天操天天爱天天玩| 亚洲视频丁香网va| 亚洲五月丁香综合网| 亚州操操| 久99久热| 啪啪激情综合| 99自拍视频网站| 日本啪啪网| 亚洲碰碰碰| 亚洲乱码w在线观看| 97干婷婷| 玖玖婷婷精品| 狠狠干综合网| 欧美五月婷婷| www99热| 亚洲精品99| 九九热精品| 色婷婷成人丁香| 久久在线视频只有这里有精品| 99久热在线精品| 丁香色六月| 99视频久久免费视频| 欧美综合婷婷欧美综| 成人婷婷五月天| 成人网丁香五月| 色五月成人在线| 亚洲另类噜噜| 激情都市丁香婷婷| 最新色色五月天| 欧美色色色| 五月大香蕉| 久久一级AV| 丁香五月婷婷综合激情啪啪啪| 婷婷五月色花丁香社区| 影音先锋天天日| 97人妻碰碰碰久久香蕉| 99色婷婷视频| 清色五月天| 日本社区五月天激情| 五月丁香六月婷婷激情网| 97碰免费视频在线| 另类小说五月天| 日本91在线播放| 性爱七区| 99热这里是精品| 丁香八月综合激情| 五月丁香六月激情综合欧美| 天天操天天插| 丁香六月天| 成人在线二区| 大香AV| 激情深爱五月婷婷| 天天成人综合视频| 五月天伊人| 日本狠狠干| 国产一级黄色影片,| 色五月色五天色情网址| 伊人久久大香蕉网| 99re这里只有精品国产99| 日韩操| 色五月婷婷av| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 色婷综合| 丁香五月婷婷深爱综合激情| 五月婷婷乱| 大香蕉久久久久| 色五月激情五月| 99色日本| 五月激情精品视频| 色天五月天在线观看视频| 色九月丁香婷婷蜜桃在线观看| 激情啪啪五月天| 五月天五月色婷婷综合| 五月丁香中文字幕| 婷婷色网| 日本熟女啪啪| 狠狠操狠狠爱| 九九亚洲视频| 婷婷亚洲综合| www.久操| 五月激情六月| 91热视频色网站| 亚州在线中文字幕| 99re热在线视频| 日本操逼九九九九58日本操逼| 激情五月天 婷婷| 99色在线视频观看| 99视频久久免费视频| 免费观看大片视频 丁香婷婷 六月欧美| 色婷五月天| www.91.com黄| 丁香婷婷色| 国产午夜精品一区二区三区四区| 久久人人超| 五月婷婷丁香社区| 亚洲日本韩国| 色人久久| 亚洲丁香五月天视频| 色吧婷婷五月亚洲| 久热这里只有国产| 97色色综合| 99热伊人综合| 午夜青草资源| 欧美25p| 亚洲一区二区无遮挡A片| 国色天香伊人狠狠色| 婷婷综合网站| 久久婷.com| 色五月涩涩婷婷| 日本色色视频| 丁香激情六月天婷婷| 99色视频| 久久亚洲婷婷| 91无码视频| 超碰爱爱爱| 欧美日韩一区二区三区四区| 97一区二区| 激情合网婷婷| 91狠狠综合久久久| www.色综合| 东京热伊人| 99热主页日本| 色综合久久中文| 亚洲成片在线观看| 99精品视频网站| 婷婷九九色| 日日日影院| 超碰av在| 亚洲精品五月| 爆乳熟妇一区二区三区四区| 激情五月婷婷网在线观看| 五月香婷婷| 人人艹艹艹| 情欲综合网| 五月婷婷综合网| oumeisesewang| 午夜丁香婷婷| 狠狠操之狠狠操| 日本三级日本三级99| 亚洲天堂99| 五月综合色| 九九日本视频| 亚洲AV成人在线| 婷婷激情五月天网站| 欧美一级色| 免費亭亭成人| 9热网站| WWW.桔色成人.COM| www.第四色99| 激情色色色|