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

Maven打包報錯"powershell不是內(nèi)部命令"的解決方法

 更新時間:2026年02月26日 09:25:22   作者:碼農(nóng)阿豪@新空間  
Maven打包時遇到"powershell不是內(nèi)部命令"的報錯,根源在于路徑中的空格,當(dāng)IDEA安裝在含空格的路徑,下面小編就和大家詳細介紹一下具體解決方法吧

序章:一個平凡的下午,一段不平凡的報錯

那是一個普通的周三下午,你泡好了咖啡,打開了IntelliJ IDEA,準(zhǔn)備執(zhí)行那個熟悉得不能再熟悉的Maven打包命令。然而,命運在你按下回車的那一刻,露出了狡黠的微笑:

nVnw.cmd -Didea.version-2025.3.2 -Dmaven.ext.class.path=C:\Users\admin\Desktop\IntelliJ IDEA 2025.3.2'powershell’不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件。Cannot start maven from wrapper

你的第一反應(yīng)是什么?可能是"我的電腦中毒了?“,可能是"IDEA又抽風(fēng)了?”,也可能是"老天爺是不是看我不順眼?"。別急,讓我告訴你真相:這一切的罪魁禍?zhǔn)祝皇且粋€看起來人畜無害的空格。

第一章:當(dāng)空格成為程序員的噩夢

1.1 那個讓無數(shù)程序員失眠的空格

在編程的世界里,空格是一個充滿哲學(xué)意味的存在。它在代碼中是優(yōu)雅的分隔符,讓我們的代碼更易讀;但在路徑中,它卻成了一個定時炸彈,隨時可能炸毀你的構(gòu)建過程。

為什么空格會成為問題?這要從計算機系統(tǒng)處理命令的方式說起。當(dāng)你輸入一條命令時,系統(tǒng)會默認用空格來分割命令和參數(shù)。比如:

mvn clean install

系統(tǒng)會聰明地識別出"mvn"是命令,"clean"和"install"是參數(shù)。但是,當(dāng)你輸入:

mvn -Dsome.path=C:\My Documents\Project

系統(tǒng)就懵了:這個"C:\My"是什么鬼?"Documents\Project"又是什么?它會把路徑在空格處切斷,然后告訴你:“C:\My’不是內(nèi)部或外部命令”——就像你遇到的那個報錯一樣。

1.2 你的報錯信息,一個精心設(shè)計的謎題

讓我們來解剖一下你遇到的那個報錯,它其實是一個隱藏的偵探故事:

nVnw.cmd -Didea.version-2025.3.2 -Dmaven.ext.class.path=C:\Users\admin\Desktop\IntelliJ IDEA 2025.3.2'powershell'...

注意看,這個命令試圖執(zhí)行的是mvnw.cmd(也就是Maven Wrapper的Windows腳本),它帶著一堆參數(shù)。但關(guān)鍵的問題出在最后一個參數(shù):-Dmaven.ext.class.path=C:\Users\admin\Desktop\IntelliJ IDEA 2025.3.2

這個參數(shù)告訴Maven:"嘿,你的擴展類路徑在這里哦!"但是,由于路徑中包含空格,系統(tǒng)把它解讀成了:

  • 命令1:設(shè)置屬性maven.ext.class.path的值為C:\Users\admin\Desktop\IntelliJ
  • 命令2:執(zhí)行IDEA(一個不存在的命令)
  • 命令3:執(zhí)行2025.3.2'powershell'(這是什么鬼?)

于是,你的控制臺就徹底崩潰了,開始把powershell當(dāng)成命令來執(zhí)行,然后發(fā)現(xiàn)找不到這個命令——等等,powershell明明是Windows自帶的???這里其實是一個更深的坑:路徑被截斷后,剩下的部分'powershell'(注意那個單引號)被當(dāng)成了一個帶引號的命令名,系統(tǒng)自然找不到這個文件。

第二章:Maven Wrapper,一個有著良好初衷但實現(xiàn)有點問題的工具

2.1 Wrapper是什么,為什么我們需要它

Maven Wrapper(也就是那個mvnw.cmd文件)是一個非常有用的工具。它的理念很簡單:讓你的項目自帶Maven,這樣無論誰克隆你的項目,都能用同一個版本的Maven構(gòu)建,避免"我機器上能跑"的經(jīng)典問題。

這就像你出門旅行時,不是指望每個酒店都有你習(xí)慣的牙刷,而是自己帶上一支。Maven Wrapper就是這支牙刷。

2.2 Wrapper的工作原理

當(dāng)你執(zhí)行./mvnw clean install時,實際上發(fā)生的事情是這樣的:

  • mvnw.cmd腳本被啟動
  • 它檢查本地是否已經(jīng)下載了指定版本的Maven
  • 如果沒有,它會從中央倉庫下載
  • 然后它把所有的參數(shù)傳遞給真正的Maven可執(zhí)行文件
  • Maven開始工作

聽起來很完美,對嗎?但問題出在第三步和第四步之間的參數(shù)傳遞過程中。

2.3 那個著名的Bug:Maven Wrapper的路徑解析缺陷

Apache Maven的JIRA系統(tǒng)里有一個著名的issue,編號為MWRAPPER-40,標(biāo)題是"mvnw.cmd fails if the path contains spaces"。這個issue從2016年被報告,至今仍然沒有被完全修復(fù)。

問題出在mvnw.cmd腳本的這一行(大約第43行):

@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)

翻譯成人話:如果__MVNW_CMD__這個變量不為空,就執(zhí)行它,并把所有參數(shù)(%*)傳給它。

看起來沒問題,但仔細想想:如果__MVNW_CMD__的值是C:\Program Files\Java\jdk1.8.0_251\bin\java,那這條命令展開后就是:

@IF NOT ""=="" (C:\Program Files\Java\jdk1.8.0_251\bin\java %*)

看到了嗎?沒有引號!Windows會把C:\Program當(dāng)成命令,然后抱怨找不到Program命令。這就是你遇到的核心問題。

第三章:為什么IDEA會讓情況變得更糟

3.1 IDEA的默認安裝路徑,一個歷史遺留問題

IntelliJ IDEA的默認安裝路徑是C:\Program Files\JetBrains\IntelliJ IDEA 2025.3.2,而這個路徑里有三個空格!這是Windows平臺的經(jīng)典問題:為什么很多軟件還是默認安裝在帶空格的路徑下?

答案很簡單:歷史原因和用戶習(xí)慣。從Windows 95開始,Program Files就是默認的程序安裝目錄,微軟一直鼓勵開發(fā)者遵循這個約定。但是,這個約定和Unix/Linux的命令行哲學(xué)產(chǎn)生了沖突。

3.2 IDEA是如何把Maven弄糊涂的

當(dāng)你通過IDEA執(zhí)行Maven命令時,IDEA會向Maven傳遞一些參數(shù),包括IDEA自身的路徑。在你的例子中,這個參數(shù)是-Didea.version-2025.3.2,但注意看后面的路徑:C:\Users\admin\Desktop\IntelliJ IDEA 2025.3.2。

你把IDEA安裝在了桌面上!這本身不是問題,但桌面的路徑C:\Users\admin\Desktop后面又跟著一個帶空格的文件夾名,這個組合簡直是災(zāi)難性的:

  • Desktop后面有空格嗎?沒有,但文件夾名IntelliJ IDEA 2025.3.2里面有空格
  • 完整的路徑中出現(xiàn)了多個空格,增加了解析的復(fù)雜性
  • IDEA在生成命令時可能沒有正確處理引號

3.3 為什么IDEA不自動處理這個問題

這是一個好問題。理論上,IDEA應(yīng)該能夠檢測到路徑中的空格,并自動添加引號。但問題在于:

  • 參數(shù)傳遞的多層嵌套:IDEA -> Maven Wrapper -> 真正的Maven -> Java進程,每一層都可能丟失引號
  • 跨平臺兼容性:IDEA需要同時處理Windows、macOS和Linux,每個系統(tǒng)處理路徑的方式略有不同
  • 歷史包袱:有些代碼是在十幾年前寫的,當(dāng)時沒人想到會有人把IDEA安裝在桌面上

第四章:解決方案深度解析

4.1 方案一:給mvnw.cmd打補?。ㄗ羁熳钪苯樱?/h3>

前面提到的修改mvnw.cmd的方案,本質(zhì)上是在問題發(fā)生的地方進行修復(fù)。讓我們深入理解這個修改:

修改前

@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)

修改后

@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*)

這小小的雙引號,實際上是給Windows的命令行解析器一個明確的指示:“嘿,從這兒到那兒是一個整體,別在中間的空格處給我切斷!”

這種修復(fù)方式的優(yōu)點是:

  • 立即生效,無需重啟或重裝
  • 只影響當(dāng)前項目,不會影響系統(tǒng)其他部分
  • 符合"最小改動原則"

缺點是:

  • 每個項目都需要修改(除非你把修改后的腳本作為模板)
  • 下次更新Wrapper時可能會被覆蓋

4.2 方案二:讓IDEA繞開Wrapper

如果你不想修改腳本文件,可以讓IDEA直接使用系統(tǒng)Maven而不是Wrapper。這個方案背后的邏輯是:既然Wrapper有問題,那我們就不用它。

具體操作

  • 在IDEA的Settings中找到Maven配置
  • 將"Maven home path"從"Use Maven wrapper"改為"Bundled"或自定義路徑
  • 確保自定義路徑?jīng)]有空格(比如C:\tools\apache-maven-3.9.6

這相當(dāng)于告訴IDEA:“別用那個會出問題的Wrapper了,直接用Maven本身吧。”

這個方案的優(yōu)點:

  • 徹底繞過Wrapper的問題
  • 配置一次,全局生效
  • 性能可能更好(省去了Wrapper的檢查過程)

缺點:

  • 團隊成員可能使用不同Maven版本,導(dǎo)致"我機器上能跑"的問題
  • 需要手動管理Maven版本

4.3 方案三:重新生成Wrapper

有時候,Wrapper文件本身可能損壞或者生成得有問題。重新生成是一個好選擇:

mvn -N wrapper:wrapper

這個命令會做以下幾件事:

  • 下載最新的Maven Wrapper JAR
  • 生成新的mvnwmvnw.cmd文件
  • 更新.mvn/wrapper/maven-wrapper.properties中的Maven版本

新生成的文件可能會修復(fù)一些已知的問題,包括路徑處理相關(guān)的bug。

4.4 方案四:終極解決方案——重新思考你的開發(fā)環(huán)境布局

這是最徹底的解決方案,也是很多資深開發(fā)者推薦的方案:把所有開發(fā)工具安裝在不含空格的路徑下。

推薦的環(huán)境布局

C:\dev\
  ├── tools\
  │    ├── jdk-17
  │    ├── apache-maven-3.9.6
  │    └── gradle-8.4
  ├── workspace\
  │    ├── project1
  │    └── project2
  └── apps\
       └── IntelliJ-IDEA-2025.3.2

為什么這樣好?

  • 所有路徑都沒有空格,一勞永逸地解決問題
  • 工具版本清晰,便于管理
  • 便于備份和遷移(直接復(fù)制整個C:\dev目錄即可)
  • 避免Windows用戶目錄權(quán)限問題

如何遷移?

  • 創(chuàng)建C:\dev目錄
  • 重新安裝JDK到C:\dev\tools\jdk-17
  • 解壓Maven到C:\dev\tools\apache-maven-3.9.6
  • 重新安裝IDEA到C:\dev\apps\IntelliJ-IDEA-2025.3.2
  • 將現(xiàn)有項目移動到C:\dev\workspace
  • 更新IDEA的項目路徑和JDK配置

這可能需要一兩個小時的時間,但這筆投資很快就能收回——想想你以后再也不用和路徑空格斗爭,節(jié)省的時間和精力。

第五章:深入理解Windows的命令行解析機制

5.1 Windows命令行的前世今生

要真正理解這個問題,我們需要回溯到DOS時代。早期的命令行解析器非常簡單,用空格分割參數(shù)是基本規(guī)則。這個規(guī)則一直沿用至今,即使Windows已經(jīng)有了更強大的PowerShell。

Windows的命令行解析主要遵循以下規(guī)則:

  • 空格分割:默認用空格分割命令和參數(shù)
  • 引號分組:用雙引號包裹的內(nèi)容被視為一個整體
  • 轉(zhuǎn)義字符^是轉(zhuǎn)義符,可以用來特殊處理某些字符
  • 環(huán)境變量擴展%VAR%會被替換為變量值

5.2 批處理腳本中的變量處理

在批處理腳本中,變量的處理又有其特殊性??催@段代碼:

set "MY_PATH=C:\Program Files\Java"
echo %MY_PATH%

這行代碼是安全的,因為set命令的語法允許用引號括起整個賦值語句。但如果這樣寫:

set MY_PATH=C:\Program Files\Java
echo %MY_PATH%

就會出問題:echo命令看到的實際上是echo C:\Program Files\Java,它會把C:\Program作為要顯示的內(nèi)容,然后試圖執(zhí)行Files\Java作為命令。

這就是為什么很多Windows批處理腳本容易出問題——它們沒有正確處理帶空格的路徑。

5.3 為什么有的軟件能正確處理空格

你可能會問:為什么Chrome瀏覽器安裝在C:\Program Files下就能正常工作?為什么很多其他軟件就不會有這個問題?

答案在于這些軟件的開發(fā)者意識到了這個問題,并在代碼中做了特殊處理。比如,一個成熟的Windows程序會:

  • 始終用引號包裹路徑:在調(diào)用外部程序時,確保路徑參數(shù)被引號包圍
  • 使用短文件名:獲取路徑的8.3格式(如C:\PROGRA~1\),這個格式永遠不含空格
  • 避免直接使用命令行:通過API直接調(diào)用,避免經(jīng)過命令行解析

而Maven Wrapper的問題在于,它是一個簡單的批處理腳本,沒有足夠的智能來處理這些邊界情況。

第六章:預(yù)防勝于治療——最佳實踐指南

6.1 路徑命名規(guī)范

作為一個有經(jīng)驗的開發(fā)者,你應(yīng)該建立自己的路徑命名規(guī)范:

禁止使用的字符

  • 空格
  • 中文字符(某些工具編碼處理不當(dāng))
  • 特殊符號(如&、%、!等)
  • 過長的路徑(超過260個字符)

推薦的命名方式

  • 使用連字符代替空格:IntelliJ-IDEA-2025.3.2
  • 使用下劃線:IntelliJ_IDEA_2025.3.2
  • 直接連寫:IntelliJIDEA2025.3.2
  • 全部小寫:intellij-idea-2025.3.2

6.2 開發(fā)環(huán)境標(biāo)準(zhǔn)化

將你的開發(fā)環(huán)境標(biāo)準(zhǔn)化,可以避免很多類似問題:

  • 統(tǒng)一JDK安裝位置C:\dev\tools\jdk-{version}
  • 統(tǒng)一構(gòu)建工具位置C:\dev\tools\maven-{version}
  • 統(tǒng)一IDE安裝位置C:\dev\apps\{ide-name}-{version}
  • 統(tǒng)一工作空間C:\dev\workspace
  • 統(tǒng)一緩存目錄C:\dev\cache\.m2C:\dev\cache\.gradle

6.3 使用環(huán)境變量和符號鏈接

對于無法改變安裝路徑的工具,可以使用Windows的符號鏈接功能:

# 創(chuàng)建指向帶空格路徑的符號鏈接
mklink /D C:\dev\idea "C:\Program Files\JetBrains\IntelliJ IDEA 2025.3.2"

# 然后就可以用C:\dev\idea訪問了

同樣,也可以修改Maven的本地倉庫位置:

<!-- 在settings.xml中 -->
<settings>
  <localRepository>C:\dev\cache\.m2</localRepository>
</settings>

6.4 團隊層面的規(guī)范

如果你是一個團隊的領(lǐng)導(dǎo)者,可以考慮在團隊內(nèi)推行以下規(guī)范:

  • 創(chuàng)建開發(fā)環(huán)境初始化腳本:一鍵配置所有開發(fā)工具
  • 使用Docker容器化:完全隔離環(huán)境差異
  • 統(tǒng)一項目模板:包含正確的Wrapper配置
  • 代碼審查中檢查路徑處理:確保沒有硬編碼的帶空格路徑

第七章:當(dāng)問題變得復(fù)雜時——調(diào)試技巧

7.1 如何調(diào)試Maven Wrapper問題

如果你遇到類似但更復(fù)雜的問題,可以使用以下調(diào)試技巧:

  • 打印實際執(zhí)行的命令:在mvnw.cmd中添加echo on或者在執(zhí)行前添加echo %*來查看實際參數(shù)
  • 逐行執(zhí)行:復(fù)制mvnw.cmd的內(nèi)容,在命令行中逐行執(zhí)行,找出具體哪一步出錯
  • 使用Process Monitor:Windows Sysinternals的Process Monitor可以監(jiān)控所有文件系統(tǒng)操作,看看Maven到底在找什么文件

7.2 創(chuàng)建最小復(fù)現(xiàn)示例

如果你需要向社區(qū)求助,創(chuàng)建一個最小復(fù)現(xiàn)示例非常重要:

  • 創(chuàng)建一個新目錄,路徑中不含空格
  • 執(zhí)行mvn archetype:generate創(chuàng)建一個最簡單的項目
  • 檢查Wrapper能否正常工作
  • 如果工作正常,逐步添加可能導(dǎo)致問題的元素

這樣可以幫助你和幫助者快速定位問題所在。

7.3 查看日志和堆棧信息

Maven本身提供了詳細的調(diào)試信息:

mvn -X clean install

-X參數(shù)會輸出所有調(diào)試信息,包括:

  • 類加載細節(jié)
  • 依賴解析過程
  • 插件執(zhí)行順序
  • 環(huán)境變量值

從中可能找到更多線索。

結(jié)語:空格雖小,影響甚大

回到最初的問題:為什么一個空格能讓Maven打包失???

這個問題的答案,反映了軟件開發(fā)中的一個普遍現(xiàn)象:小問題背后往往隱藏著深層的系統(tǒng)設(shè)計問題。一個空格不僅讓Maven失敗,還暴露了:

  • Windows命令行解析的歷史遺留問題
  • Maven Wrapper實現(xiàn)中的缺陷
  • 開發(fā)工具默認配置的不足
  • 程序員對系統(tǒng)工作原理的認識不足

但更重要的是,這個問題提醒我們:作為開發(fā)者,我們不僅要會用工具,還要理解工具背后的工作原理。只有這樣,當(dāng)工具出問題時,我們才能快速定位并解決。

下次當(dāng)你再遇到類似的"小問題"時,不妨多花點時間深入思考一下:這個問題背后的根本原因是什么?我今天的解決方案是一勞永逸的,還是只是臨時應(yīng)付?我可以從中學(xué)到什么,避免將來再犯同樣的錯誤?

畢竟,真正的專家不是不犯錯的人,而是能從錯誤中學(xué)習(xí),并且?guī)椭吮苊馔瑯渝e誤的人。

希望這篇文章能幫你解決Maven打包的問題,更重要的是,希望它能讓你對軟件開發(fā)中的"小問題"有更深入的思考。記住,那個讓你崩潰的空格,可能正是你成為更好開發(fā)者的契機。

附:快速自查清單

如果你的Maven打包失敗,可以先檢查:

  • 項目路徑是否包含空格?
  • JDK安裝路徑是否包含空格?
  • Maven安裝路徑是否包含空格?
  • IDEA安裝路徑是否包含空格?
  • 用戶名是否包含空格或中文?
  • 是否在使用Maven Wrapper?
  • mvnw.cmd文件是否被正確引號包裹?

如果以上都是"是",恭喜你,你已經(jīng)找到問題的根源了!

到此這篇關(guān)于Maven打包報錯"powershell不是內(nèi)部命令"的解決方法的文章就介紹到這了,更多相關(guān)Maven打包報錯解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用java agent修改字節(jié)碼并在springboot啟動時自動生效

    如何使用java agent修改字節(jié)碼并在springboot啟動時自動生效

    本文介紹了JavaAgent的使用方法和在SpringBoot中的應(yīng)用,JavaAgent可以通過修改類的字節(jié)碼,實現(xiàn)對非Spring容器管理對象的AOP處理,演示了如何定義切面邏輯,實現(xiàn)接口mock,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • 詳解springboot-mysql-pagehelper分頁插件集成

    詳解springboot-mysql-pagehelper分頁插件集成

    這篇文章主要介紹了springboot-mysql-pagehelper分頁插件集成,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • spring cloud 配置中心native配置方式

    spring cloud 配置中心native配置方式

    這篇文章主要介紹了spring cloud 配置中心native配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 猜你不知道Spring Boot的幾種部署方式(小結(jié))

    猜你不知道Spring Boot的幾種部署方式(小結(jié))

    這篇文章主要介紹了猜你不知道Spring Boot的幾種部署方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java中的this、super、final關(guān)鍵字詳解

    Java中的this、super、final關(guān)鍵字詳解

    這篇文章主要介紹了Java中的this、super、final關(guān)鍵字詳解,它在方法內(nèi)部使用,表示這個方法所屬對象的引用,它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對象,this 可以調(diào)用類的屬性、方法和構(gòu)造器,需要的朋友可以參考下
    2023-09-09
  • java如何利用poi解析doc和docx中的數(shù)據(jù)

    java如何利用poi解析doc和docx中的數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于java如何利用poi解析doc和docx中數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 三種Java求最大值的方法

    三種Java求最大值的方法

    本篇文章給大家總結(jié)了在JAVA中求最大值的三種常用方法,以及代碼做了分享,需要的朋友參考下。
    2018-02-02
  • Springboot整合Redis實現(xiàn)超賣問題還原和流程分析(分布式鎖)

    Springboot整合Redis實現(xiàn)超賣問題還原和流程分析(分布式鎖)

    最近在研究超賣的項目,寫一段簡單正常的超賣邏輯代碼,多個用戶同時操作同一段數(shù)據(jù)出現(xiàn)問題,糾結(jié)該如何處理呢?下面小編給大家?guī)砹薙pringboot整合Redis實現(xiàn)超賣問題還原和流程分析,感興趣的朋友一起看看吧
    2021-10-10
  • Java事故排查過程詳細講解

    Java事故排查過程詳細講解

    Java線上問題排查是一個復(fù)雜但重要的過程,涉及多個方面,這篇文章主要介紹了Java事故排查過程的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-10-10
  • Java哈希表的概念及實現(xiàn)完整代碼

    Java哈希表的概念及實現(xiàn)完整代碼

    這篇文章主要介紹了Java哈希表的概念及實現(xiàn)的相關(guān)資料,哈希表是一種高效查找數(shù)據(jù)的結(jié)構(gòu),通過哈希函數(shù)將關(guān)鍵字映射到數(shù)組的索引位置,當(dāng)發(fā)生沖突時,可以通過閉散列或開散列(鏈地址法)來解決,需要的朋友可以參考下
    2024-11-11

最新評論

芜湖市| 阜新市| 桑日县| 连云港市| 蓬溪县| 陆良县| 太白县| 天祝| 迭部县| 龙山县| 当涂县| 大化| 荣昌县| 本溪| 丹江口市| 佳木斯市| 阿城市| 江门市| 城固县| 延津县| 山西省| 襄城县| 达尔| 黑河市| 柘荣县| 安徽省| 成武县| 山阳县| 宜兰县| 达日县| 海晏县| 武定县| 郧西县| 县级市| 平泉县| 江阴市| 巢湖市| 尚义县| 奉节县| 漯河市| 江山市|