相关文章推荐
豪气的青蛙  ·  Core Configuration :: ...·  1 年前    · 
斯文的佛珠  ·  Alternate to ...·  1 年前    · 
无邪的硬盘  ·  python - Selenium ...·  1 年前    · 

1. GeoTools源码构建

首先我们要明白为什么要进行源码构建?有人说为了学习优秀的代码,并于调试,做笔记。也有人会说为了满足项目的需求进行对源码的修改。我想,对于第一点还是很多人的想法,但是第二点,不仅需要身后的代码功能,但是一般也不建议这么做,因为如果要升级版本,这也算是灾难级别的影响。那有没有其他办法吗?根据代码的特性,合理的运用java的封装、继承和多态的特性进行改造,说白了就是要学会使用匿名内部类。

今天我们不是去研究怎么改造代码,而是要搭建源码环境。构建不同版本的GeoTools工具类。免于忍受由于下载geotools的龟速。

2. 下载源码

构建源码的前提是要先下载源码。当前许多流行框架的源码基本都被github托管。当然,如果你会科学上网,一切不是问题。但是如对于不会科学上网的那就非常痛苦了,卸载的速度简直比龟速还慢。那有没有一种方法解决这个问题吗?答案肯定是有的。好了,那我们就先开始下载代码。

2.1 查找代码库

GeoTools在GitHub的代码位置为 GeoTools 。此时我们复制https地址 https://github.com/geotools/geotools.git

2.2 代码块迁移

打开自己的Gitee账号,没有的可以申请一个。依次点击±> 从 GitHub / GitLab 导入仓库

在弹出的页面输入相关属性,Git仓库URL输入刚才复制的地址,其他的属性也自行补充一下。

稍等片刻,我们就把代码迁移到gitee上了。然后我们就可以愉快的clone代码了。那速度不是一般的快啊。

3. 源码构建

3.1 切换指定版本

切换到我们需要的版本,一般我们构建是通过tag版本构建。所以我们执行如下命令查看tag标签: git tag 。这里,我们选择19.1的版作为检出版本。我们需要执行如下命令:

git checkout -b 19.1_dev 19.1

需要注意的是(很重要,不然后期会很麻烦):我们在检出的本地版本号千万不要和tag标签的号一致,否则会严重影响后期push代码的步骤。

查看是否切换版本:

git branch -a

当然这是git的基本操作,我就不做详细说明了。

3.2 打包

我们打开当前文件夹下,有一个README.md的文件。里面有一段构建项目的方法:

然而,我们为了快速构建项目,这里我们需要跳过项目的测试,所以我们执行命令:

mvn -Dmaven.test.skip=true clean install 

3.3 查看构建结果

我们在maven的中心仓库中查看我们打的jar包是否存在。如果存在,则表明打包成功。

4. 常见问题

在实际源码构建中,有可能会存在如下几个问题:

4.1 找不到依赖包

Geotools上的部分依赖包在maven中央仓库并没有存在,他是放到了https://repo.boundlessgeo.com/等其他关于地理信息系统的仓库。这是国外的仓库,如果不通过科学上网是没办法获取到的。解决的办法就是需要科学上网。当然,我也把geoTools需要的依赖上传到CSDN上了,需要的可以自行下载一下,GeoTools依赖包

4.2 找不到Geotools下类似test的jar包。

在源码构建过程中,有些模块还依赖了其他模块的test的jar包。为了快速构建,我们当时执行的命令是跳过test,即-Dmaven.test.skip=true,所以此时需要找到相对应的依赖包,在当前路径下执行mvn install命令,此时会在本地maven仓库中多出一个test的jar包。

4.3 在构建test报错

在构建test过程中,由于各种原因导致测试并不通过。我们可以通过错误日志找出报错的测试用例,直接把方法里的代码注释掉即可。

1. GeoTools源码构建首先我们要明白为什么要进行源码构建?有人说为了学习优秀的代码,并于调试,做笔记。也有人会说为了满足项目的需求进行对源码的修改。我想,对于第一点还是很多人的想法,但是第二点,不仅需要身后的代码功能,但是一般也不建议这么做,因为如果要升级版本,这也算是灾难级别的影响。那有没有其他办法吗?根据代码的特性,合理的运用java的封装、继承和多态的特性进行改造,说白了就是要学会使用匿名内部类。今天我们不是去研究怎么改造代码,而是要搭建源码环境。构建不同版本的GeoTools工具类。免于
1. 前言 本系列文章主要参考GeoTools官网的13个示例GeoTools Tutorials,做一简化阐述以及扩展。在第一节Quickstart中,我们主要讲述一下Maven Quickstart这个示例讲解,其他的实例大家可以参照官网做进一步学习。另外,为了降低学习成本,本系列课程的摒弃了QGIS、UDig等可视化工具,而是通过本篇文章提到的JMapFrame框架展示处理结果。 2. 数据准备 本实例主要用到的数据为官网提供的实例数据1:50m Cultural Vectors。 3. pom文件
1. 概述 在前面章节GeoTools入门(六)-- 查询那点事中,我们主要介绍了GeoTools关于shape查询的一些功能。作为一个地理信息处理框架,拓扑关系的处理是一种非常重要的功能。在GeoTools中,我们通过ECQL.toFilter()传递一个WKT字符串(RELATE)就可以实现DE-9IM 的查询: Filter filter =ECQL.toFilter("RELATE(geometry, LINESTRING (-134.921387 58.687767, -135.303391 59
geotools入门文档,涵盖OGC相关标准基本名词示意:opengis简介、wms服务简介、wfs服务简介、WMTS服务简介。geotools入门使用:创建GeoTools、创建Feature、JTS-geometry、GeoTools与应用集成 geotools入门到简单使用文档地址
1. geotools简介 geotools是java语言封装的空间数据框架。类似于spring之与java web项目,geotools提供丰富的GIS组件,可用于快速二次搭建GIS平台。详细可登录geotools官网了解其功能信息(https://geotools.org/)。 2. geotools postgis源码解析 postgis是postgresql数据库的扩展,可以理解为postgresql的GIS化功能封装。 本博文用postgresql 11和postgis 3.1.1版本给大
1. 《Geotools指南》:这本书是Geotools官方文档,提供了Geotools的基础知识和详细的使用方法。 2. 《Geotools权威指南》:这本书是由Geotools开发团队成员所著,深入讲解了Geotools的内部原理和高级功能。 3. 《Geotools开发指南》:这本书是针对开发人员的Geotools入门教程,介绍了如何使用Geotools进行地理信息系统开发。 4. 《Geotools实战》:这本书是针对实际应用的Geotools教程,提供了许多实例来帮助读者学习如何使用Geotools解决实际问题。 希望以上推荐能帮到你!