ソースコードから構築する

システム要求

Java 8

GeoNetworkはServletとして動作するJava 8アプリケーションであり,これを構築.実行するためにはJava開発Toolkit(JDK)を実装しなければならないことを意味する.Linux発行版からJava 8 JDKを得ることができます Oracle OpenJDK あるいは…。 AdoptOpenJDK それがそうです。Java 8に注意してください Oracle JDK 現在はテスト目的にのみ使用されている。

GeoNetworkはJava 8(LTS)を用いて開発されているため,以下のような意味を持つ.

  • GeoNetworkは比較的新しいバージョンのJavaを用いて開発すべきではない.

  • Java 11(LTS)は 支持しない この時に。

  • GeoNetworkはJava 7(1.6)以上ではまったく動作しない.

アプリケーションサーバ

次に、あなたはサーブレット容器が必要です。GeoNetworkには埋め込み容器が付属している。 Eclipse Jetty その速度は速く、ほとんどの応用に非常に適している。

もっと強い容器が必要でしたら、お勧めします Apache Tomcat それがそうです。Tomcatは負荷均衡,フォールトトレランスなどの生産機能を提供する.Apache Tomcatは広く用いられており,多くの組織がTomcat上でそのすべてのJava Webアプリケーションを標準化している.

以下の安定バージョンのTomcatをお勧めします。

  • Apache Tomcat 8.5

  • Apache Tomcat 9.0

データベース.データベース

ストレージについては、Oracle、MySQL、PostgreSQLなどのデータベース管理システム(DBMS)が必要です。GeoNetworkには組み込みDBMS(H 2)が付属しており、インストール中にデフォルトで使用されています。このDBMSは、1人または2人のユーザが数千個以下のメタデータレコードを使用する小型またはデスクトップインストールに使用することができる。より高い要求があれば、専門的で独立したDBMSを使用しなければなりません。

環境.

GeoNetworkはJavaで書かれており,主にLinux,Windows,MacOSでJavaをサポートしているプラットフォーム上で動作可能である.

GeoNetworkは資源集約型ではなく,機能の強い機器を必要としない.1 GBのRAMを使用すると良好な性能が得られます。ただし,提案するメモリ容量は2 GBである.

ハードディスク空間の場合、アプリケーション自体に必要な空間(約350 MB)およびデータに必要な空間(50 GB以上に増加する場合があります)を考慮しなければなりません。ほとんどの場合、250 GBの簡単な(SSD)ディスクで十分であるはずだ。インデックスを検索するためのディスク空間も必要です GEONETWORK_DATA_DIR/index (デフォルトの場合、GEONETWORK_DATA_DIRは INSTALL_DIR/web/geonetwork/WEB_INF/data )である。しかし,数千本のメタデータレコードしかなくてもインデックスが小さいため,通常500 MBの空間は十分である.

あなたが使用しているServletコンテナによると、ソフトウェアは異なる方法で動作します。

  • トム猫 -GeoNetworkは、WARファイルとして提供され、Tomcat webappsディレクトリに入れることができます。Tomcatは、起動時にWARファイルを展開します。そして、TomcatマネージャWebアプリケーションを使用してGeoNetworkを停止/起動することができます。起動もご利用いただけます。 そして電源を切ります。 Tomcat binディレクトリに位置するスクリプト(.*は.shまたは.batを表し,具体的にはあなたのオペレーティングシステムに依存する)が,Tomcatコンテナに他のWebアプリケーションがあれば影響を受ける.

  • 波止場 提供されたコンテナを使用する場合、GeoNetworkのbinディレクトリのスクリプトを使用することができます。スクリプトは起動中です。 そして電源を切ります。 そしてあなたはそれらを実行するためにbinディレクトリにいなければならない。インストール後すぐにこれらのスクリプトを使用することができます。

道具

GeoNetworkの開発環境を設置するためには,以下のツールを実装する必要がある.

  • Java 8 -GeoNetworkを用いた開発にはJava開発Toolkit(JDK)1.8が必要である.

  • Maven 3.1.0+-地理的ネットワークの使用 Maven 構築過程や依存項を管理していますインストール後、あなたのパスにはmvnコマンドがあるはずです(Windowsシステムでは、シェルを開いてチェックしなければなりません)。

  • Git -GeoNetworkソースコードを格納し、バージョン制御を行う a Git repository on Github それがそうです。お客様のオペレーティングシステムによると、複数のGitクライアントを使用することができます。Gitサイトを見て、少し知ってください alternatives いいですよ。 documentation それがそうです。より多くの文書については、アクセスしてください Github website それがそうです。

  • Ant -地理的ネットワーク使用 Ant インストールプログラムを構築することができますバージョン1.6.5は動作可能であるが、他の最新バージョンであってもよいはずである。インストール後、PATHにはAntコマンドがあるはずです(Windowsシステムでは、シェルを開いてチェックしなければなりません)。

  • 獅子面像 -GeoNetwork文書を良好なフォーマットで構築するためには、 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/geonnetworkにナビゲートします。

もっと詳しい説明については、読み続けてください。

ソースコードを見る

リポジトリをクローンして構築します:

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リポジトリからコードが発行された後、GeoNetworkのルートフォルダに入り、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資料アーカイブにはGeoNetwork構成要素が含まれています ($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はJettyへの内蔵サポートを提供しています plug-in それがそうです。

組み込みJettyサーバを用いてGeoNetworkを実行するためには,ディレクトリを変更する必要がある. web モジュールは、次のMavenコマンドを実行します。

mvn jetty:run -Penv-dev

しばらくすると,GeoNetworkはhttp://localhost:8080/geonnetworkを介してアクセスできるはずである.

ユーザインタフェースに関する変更. web-ui モジュール内のメタデータアーキテクチャまたはメタデータアーキテクチャ。 schemas モジュールは,Jettyで以下のMavenコマンドを実行して配備することができる. web モジュール:

mvn process-resources