Javaで地図を書く時に使うGeoToolsのリポジトリが変わっていました（←勘違い）

Javaで地図を書きたくてネット上のサンプルを写経したらGeoToolsライブラリがダウンロードできない問題に遭遇しました。
末尾に挙げた「[Gradleを介してGeoToolsdependencisを解決するための正しいURLは何ですか](https://knews.vip/postcrawl/stack/view?site=gi&key=13355981&alias=gradle-o-kaishite-geotoolsdependencis-o-kaiketsusuru-tame-no-tadashii-url-wa-nani-desu-ka)」に記されているとおり依存ライブラリのダウンロード先を変更したら解決しました。

# 遭遇した問題

```bash
$ ./gradlew build
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find org.geotools:gt-shapefile:22.2.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/geotools/gt-shapefile/22.2/gt-shapefile-22.2.pom
（以下省略）
```

# 解決方法

GeoToolsを使うために、<code>https://repo.osgeo.org/repository/release</code>をリポジトリに追加しました。
後からわかったことですが、[GeoTools](http://docs.geotools.org/latest/userguide/tutorial/quickstart/intellij.html)公式HPをよく見たら、Mavenの例ですが先のリポジトリが必要であると書いてありました。

```gradle
plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    // このリポジトリを追加したら解決しました。
    maven {url "https://repo.osgeo.org/repository/release"}
    mavenCentral()
}

dependencies {
    compile 'org.geotools:gt-shapefile:22.2'
    compile 'org.geotools:gt-swing:24.2'

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}

test {
    useJUnitPlatform()
}
```

# 写経したJavaプログラム

```java
package hellogeotools;

import java.io.File;
import java.io.IOException;
//import org.geotools.data.CachingFeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;

public class HelloGeoTools {

    public static void main(String[] args) throws IOException {
        System.out.print("Javaバージョン(java.version):");
        System.out.println(System.getProperty("java.version"));

        System.out.print("オペレーティングシステム名(os.name):");
        System.out.println(System.getProperty("os.name"));

        File file = JFileDataStoreChooser.showOpenFile("shp", null);
        if (file == null) {
            System.err.println("No such file.");
            return;
        }

        FileDataStore store = FileDataStoreFinder.getDataStore(file);
        SimpleFeatureSource featureSource = store.getFeatureSource();

        MapContent map = new MapContent();
        map.setTitle("Quickstart");

        Style style = SLD.createSimpleStyle(featureSource.getSchema());
        Layer layer = new FeatureLayer(featureSource, style);
        map.addLayer(layer);

        JMapFrame.showMap(map);
    }
}

```

# 参考

* [Gradleを介してGeoToolsdependencisを解決するための正しいURLは何ですか](https://knews.vip/postcrawl/stack/view?site=gi&key=13355981&alias=gradle-o-kaishite-geotoolsdependencis-o-kaiketsusuru-tame-no-tadashii-url-wa-nani-desu-ka)
* [最初のGeoToolsプログラム](http://www.02.246.ne.jp/~torutk/java/geotools/build/html/first.html)
* [GeoTools - IntelliJ Quickstart](http://docs.geotools.org/latest/userguide/tutorial/quickstart/intellij.html)

# 環境

* Ubuntu 18.04
* Java 11.0.10