从源代码构建

系统要求

爪哇8

GeoNetwork是一个Java8应用程序,作为servlet运行,这意味着必须安装Java开发工具包(JDK)才能构建和运行它。您可以从Linux发行版中获得Java8JDK, Oracle OpenJDKAdoptOpenJDK . 请注意Java 8 Oracle JDK 目前仅为测试目的分发。

由于GeoNetwork是使用Java 8(LTS)开发的,因此具有以下含义:

  • GeoNetwork不应使用Java的更新版本进行开发。

  • Java 11(LTS)是 不支持 这时。

  • GeoNetwork根本无法在Java7(1.6)或更早版本中运行。

应用服务器

接下来,您需要一个servlet容器。GeoNetwork附带一个嵌入式容器, Eclipse Jetty ,它速度快,非常适合大多数应用程序。

如果您需要更强大的容器,我们建议 Apache Tomcat . Tomcat提供负载平衡、容错和其他生产特性。apachetomcat被许多组织广泛使用,许多组织都在Tomcat上对其所有的javaweb应用程序进行标准化。

我们建议Tomcat的以下稳定版本:

  • Apache Tomcat 8.5

  • Apache Tomcat 9.0

数据库

在存储方面,您需要一个数据库管理系统(DBMS),如Oracle、MySQL、Postgresql等。GeoNetwork附带了一个嵌入式DBMS(H2),在安装过程中默认使用。这种数据库管理系统可用于一个或两个用户的不超过几千条元数据记录的小型或桌面安装。如果您有更重的要求,那么您应该使用专业的、独立的DBMS。

环境

GeoNetwork是用Java编写的,可以在任何支持Java的平台上运行:主要是Linux、Windows和macOS。

地理网络不是资源密集型的,也不需要强大的机器。使用1GB内存可以获得良好的性能。但是,建议使用2GB RAM。

对于硬盘空间,您必须考虑应用程序本身所需的空间(约350MB)和数据所需的空间,这些空间可能会增长到50GB或更多。在大多数情况下,250GB的简单(SSD)磁盘就足够了。您还需要一些磁盘空间来存储位于中的搜索索引 GEONETWORK_DATA_DIR/index (默认情况下,geonnetwork_DATA_DIR是 INSTALL_DIR/web/geonetwork/WEB_INF/data ). 然而,即使有几千条元数据记录,索引也很小,因此通常500MB的空间就足够了。

根据您使用的servlet容器,软件以不同的方式运行:

  • 雄猫 -geonnetwork是一个WAR文件,您可以将其放入Tomcat webapps目录中。启动时,Tomcat将部署WAR文件。然后,您可以使用Tomcat管理器web应用程序来停止/启动geonwork。你也可以使用启动。 然后关机。 位于Tomcat bin目录中的脚本(.*表示.sh或.bat,具体取决于您的操作系统),但如果Tomcat容器中有其他web应用程序,则它们也会受到影响。

  • 码头 -如果使用提供的容器,则可以使用geonnetwork的bin目录中的脚本。脚本正在启动。 然后关机。 你必须在bin目录中才能运行它们。您可以在安装后立即使用这些脚本。

工具

要设置GeoNetwork的开发环境,需要安装以下工具:

  • 爪哇8 -使用GeoNetwork开发需要Java开发工具包(JDK)1.8。

  • 马文 3.1.0+-地理网络使用 Maven 管理构建过程和依赖关系。安装之后,您应该在您的路径中有mvn命令(在Windows系统上,您必须打开一个shell进行检查)。

  • Git -GeoNetwork源代码存储在 a Git repository on Github . 根据您的操作系统,可以使用多种Git客户端。请访问Git网站 alternatives 很好 documentation . 更多文档可以在 Github website .

  • Ant -地理网络的用途 Ant 生成安装程序。版本1.6.5可以工作,但任何其他最新版本都应该可以。一旦安装,您的路径中应该有Ant命令(在Windows系统上,您必须打开一个shell进行检查)。

  • Shpinx -以一个好的格式构建地理网络文档, Sphinx 被使用。请注意,如果您的系统上没有Python解释器,Sphinx将无法工作,因此您需要安装 Python .

建造和运行

如果只希望快速构建和运行GeoNetwork,请执行以下操作:

git clone --depth 3 --recursive https://github.com/geonetwork/core-geonetwork.git
cd core-geonetwork
mvn clean install -DskipTests
cd web
mvn jetty:run

现在打开浏览器并导航到http://localhost:8080/地理网络。

如需更详细的解释,请继续阅读。

查看源代码

克隆存储库并生成:

git clone --recursive https://github.com/geonetwork/core-geonetwork.git
cd core-geonetwork
mvn clean install -DskipTests

子模块

GeoNetwork使用子模块,这些子模块由 --recursive 克隆存储库时的选项。

如果你错过了使用 --recursive 运行以下命令:

cd core-geonetwork
git submodule init
git submodule update

子模块用于跟踪外部依赖项。必须在分支更改后初始化和更新它们:

git submodule update --init

请记住在更新外部依赖项后重新生成应用程序。

建立地理网络

从Github存储库签出代码后,进入geonnetwork的根文件夹并执行Maven build命令:

mvn clean install

如果生成成功,您将得到如下输出:

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] GeoNetwork opensource ................................. SUCCESS [1.345s]
[INFO] Caching xslt module ................................... SUCCESS [1.126s]
[INFO] Jeeves modules ........................................ SUCCESS [3.970s]
[INFO] ArcSDE module (dummy-api) ............................. SUCCESS [0.566s]
[INFO] GeoNetwork web client module .......................... SUCCESS [23.084s]
[INFO] GeoNetwork user interface module ...................... SUCCESS [15.940s]
[INFO] Oaipmh modules ........................................ SUCCESS [1.029s]
[INFO] GeoNetwork domain ..................................... SUCCESS [0.808s]
[INFO] GeoNetwork core ....................................... SUCCESS [6.426s]
[INFO] GeoNetwork CSW server ................................. SUCCESS [2.050s]
[INFO] GeoNetwork health monitor ............................. SUCCESS [1.014s]
[INFO] GeoNetwork harvesters ................................. SUCCESS [2.583s]
[INFO] GeoNetwork services ................................... SUCCESS [3.178s]
[INFO] GeoNetwork Web module ................................. SUCCESS [2:31.387s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 minutes 35 seconds
[INFO] Finished at: Sun Oct 27 16:21:46 CET 2013

您的本地Maven存储库现在包含创建的geonwork工件 ($HOME/.m2/repository/org/geonetwork-opensource

编译选项

许多Maven构建选项都是可用的,例如,您可能希望使用以下选项:

-- Skip test
$ mvn install -DskipTests

-- Offline use
$ mvn install -o

-- Build really fast with 2 threads per cpu core
$ mvn install -o -DskipTests -T 2C

请参阅 Maven documentation 任何其他选择。

Maven配置文件

Maven配置文件用于启用其他生成配置。

应用程序的某些组件(如WFS功能索引)依赖于Elasticsearch实例。要启用这些选项,请使用 `es `个人资料。

mvn clean install -Pes

运行嵌入式Jetty服务器

Maven通过一个 plug-in .

要使用嵌入式Jetty服务器运行GeoNetwork,必须将目录更改为 web 模块,然后执行以下Maven命令:

mvn jetty:run -Penv-dev

一段时间后,GeoNetwork应该可以访问:http://localhost:8080/地理网络

中与用户界面相关的更改 web-ui 中的模块或元数据架构 schemas 模块,这些可以部署在Jetty中执行以下Maven命令 web 模块:

mvn process-resources