目錄簡介架構Application 和組件簡單入門示例先決條件創建項目編譯庫文件引用庫文件運行項目界面交互示例創建項目編譯庫文件實現應用函數引用庫文件運行項目參考資料 簡介 Sauron 是一個多功能的 Web 框架和庫,用於構建客戶端和/或伺服器端 Web 應用程式,重點關註人體工程學、簡單性和優 ...
dataease 項目後端的源碼編譯問題
dataease後端項目,pom里有一個包,無法下載。源碼里的定義如下:
項目後端pom定義
<!--calcite核心包-->
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-core</artifactId>
<version>${calcite-core.version}</version>
<classifier>de</classifier>
</dependency>
關於classifier標簽,大概用處是,如果一個Maven目錄里有多個包,通過這個標簽,決定,到底從目錄里選擇哪個包來引入。
舉個例子,如果不加該標簽,那麼就會從org\apache\calcite\calcite-core\${calcite-core.version}
目錄找calcite-core-1.35.5.jar
進行導入 , 如果你加了標簽,那麼就會找calcite-core-1.35.5-de.jar
來導入。
現在pom飄紅,查看本地maven庫,找到對應目錄,確實沒有對應de的包。
找到官網的說明文檔:
core-backend 源碼引用到 calcite-core 依賴,是 DataEase 基於 Apache Calcite 工程修改後的依賴包,不屬於開源部分。該依賴包會持續迭代,並上傳到公共倉庫中,對社區版源碼的編譯和使用不會造成任何影響。
說明該包屬於不開源部分,所以沒有源碼包,我們只能從它自己的私倉下載對應的包。
查看pom定義,裡面確實有定義拉取 calcite-core 依賴的倉庫:
項目里pom關於私倉的定義
<repositories>
<repository>
<id>fit2cloud-public</id>
<name>Fit2cloud Public</name>
<url>https://repository.fit2cloud.com/repository/fit2cloud-public/</url>
</repository>
</repositories>
那就奇怪了,那為什麼編譯時沒生效?
後來查看我本地maven的setting.xml文件。
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿裡雲公共倉庫</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
發現,因為我配置了國內鏡像,把所有的請求都攔截了去阿裡雲公共倉庫去下載了,但其實,因為項目要下載的包並不開源,它是處在自己的私有倉里,所以需要放開去該私倉的請求。針對該私倉,將pom修改如下:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*,!fit2cloud-public</mirrorOf>
<name>阿裡雲公共倉庫</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
再重新編譯,OK。