填坑:Maven工程引用GeoTools依賴(lài)

這兩天在做一個(gè)系統(tǒng)的后臺(tái),需要用到GeoTools做后端空間分析,記錄一下自己遇到的問(wèn)題。
項(xiàng)目通過(guò)Maven進(jìn)行構(gòu)建,參照文檔Maven Quickstart添加GeoTools依賴(lài)和遠(yuǎn)程倉(cāng)庫(kù)地址。

    <dependencies>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-swing</artifactId>
            <version>${geotools.version}</version>
        </dependency>
        <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-epsg-hsql</artifactId>
            <version>${geotools.version}</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
        <repository>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <id>boundless</id>
          <name>Boundless Maven Repository</name>
          <url>http://repo.boundlessgeo.com/main</url>
        </repository>
    </repositories>

但是我的maven沒(méi)有把依賴(lài)下載成功,于是我就用笨辦法,將GeoTools對(duì)應(yīng)的編譯版本下載下來(lái),并利用《填坑:IDEA導(dǎo)入Maven工程無(wú)法下載依賴(lài)項(xiàng)》方法,將依賴(lài)的jar包注冊(cè)到本地倉(cāng)庫(kù)中。問(wèn)題就隨之而來(lái)了。
在引用到GeoTools類(lèi)庫(kù)中,定義坐標(biāo)系,并建立坐標(biāo)系轉(zhuǎn)換關(guān)系時(shí),報(bào)錯(cuò)!

CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326");
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3785");

MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS);

對(duì)比參考文檔CRS Lab Application,并沒(méi)發(fā)現(xiàn)什么不同。但從報(bào)錯(cuò)結(jié)果看,是定義的EPSG坐標(biāo)系無(wú)法實(shí)例化,折騰再三,將geotools文件夾放入src目錄下,然后再項(xiàng)目classpath目錄下引用對(duì)應(yīng)的jar包,這樣能夠運(yùn)行起來(lái),但是將項(xiàng)目打包后卻仍然報(bào)錯(cuò)。
最終,發(fā)現(xiàn)引入以上三個(gè)GeoTools庫(kù)的依賴(lài)關(guān)系時(shí),它會(huì)自動(dòng)構(gòu)建和其他包的依賴(lài)并將這些依賴(lài)包含在它的次層級(jí)內(nèi),如圖所示

image.png

從本地倉(cāng)庫(kù)中,也可以看出這種依賴(lài)關(guān)系
image.png

最后還是翻墻,老老實(shí)實(shí)將依賴(lài)下載下來(lái)。
如果你配置了阿里的鏡像,可以在自己的maven配置文件修改一下,直接從GeoTools的遠(yuǎn)程庫(kù)中下載。

    <mirror> 
      <id>alimaven</id> 
      <name>aliyun maven</name> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
      <mirrorOf>*,!osgeo,!maven2-repository.dev.java.net,!boundless</mirrorOf> 
    </mirror>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,290評(píng)論 6 342
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • |-1-更新內(nèi)容[6.從倉(cāng)庫(kù)解析依賴(lài)的機(jī)制(重要)] 1Maven倉(cāng)庫(kù)作用 倉(cāng)庫(kù)用來(lái)存儲(chǔ)所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,472評(píng)論 0 25
  • 阿嗚阿嗚閱讀 230評(píng)論 0 0
  • 官網(wǎng)原文:https://www.fusetools.com/learn/fusejs FuseJS簡(jiǎn)介 Fuse...
    趙趙811閱讀 6,447評(píng)論 0 2

友情鏈接更多精彩內(nèi)容