5

您好我正在尝试用 maven 编写一个简单的 geotools 项目。实际上我对 Maven 很陌生。我打开了新的 Maven 项目,设置了设置并编写了一些代码。据我所知,maven 应该下载并安装 geotools 所需的 jar 文件。但是 A 收到“缺少工件 org.geotools:gt-shapefile:jar:11-SNAPSHOT”错误,我不明白为什么会这样。

我的工作环境:

Eclipse Kepler、Jdk 6、Maven-最新版本、Geotools-最新版本

这是我的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geotools</groupId>
<artifactId>tutorial</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>tutorial</name>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <geotools.version>11-SNAPSHOT</geotools.version>
</properties>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-shapefile</artifactId>
        <version>${geotools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.geotools</groupId>
        <artifactId>gt-swing</artifactId>
        <version>${geotools.version}</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>maven2-repository.dev.java.net</id>
        <name>Java.net repository</name>
        <url>http://download.java.net/maven/2</url>
    </repository>
    <repository>
        <id>osgeo</id>
        <name>Open Source Geospatial Foundation Repository</name>
        <url>http://download.osgeo.org/webdav/geotools/</url>
    </repository>
</repositories>

这是我的快速入门课程

    package org.geotools.tutorial;

import java.io.File;

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;

/**
 * Prompts the user for a shapefile and displays the contents on the screen in a map frame.
 * <p>
 * This is the GeoTools Quickstart application used in documentationa and tutorials. *
 */
public class Quickstart {

    /**
     * GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its
     * contents on the screen in a map frame
     */
    public static void main(String[] args) throws Exception {
        // display a data store file chooser dialog for shapefiles
        File file = JFileDataStoreChooser.showOpenFile("shp", null);
        if (file == null) {
            return;
        }

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

        // Create a map content and add our shapefile to it
        MapContent map = new MapContent();
        map.setTitle("Quickstart");

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

        // Now display the map
        JMapFrame.showMap(map);
    }

}

我只是写了我没有下载或安装任何 jar 的代码。我将项目作为 Maven 项目打开。我想知道maven何时以及如何下载和安装jar?

谢谢你。

4

6 回答 6

10

我知道这真的很旧,但在搜索问题时仍然首先出现。网址又变了,现在是:

<repository>
    <id>osgeo</id>
    <name>OSGeo Release Repository</name>
    <url>https://repo.osgeo.org/repository/release/</url>
  </repository>

或者如果你想启用快照:

  <repository>
    <id>osgeo</id>
    <name>OSGeo Release Repository</name>
    <url>https://repo.osgeo.org/repository/release/</url>
    <snapshots><enabled>false</enabled></snapshots>
    <releases><enabled>true</enabled></releases>
  </repository>
  <repository>
    <id>osgeo-snapshot</id>
    <name>OSGeo Snapshot Repository</name>
    <url>https://repo.osgeo.org/repository/snapshot/</url>
    <snapshots><enabled>true</enabled></snapshots>
    <releases><enabled>false</enabled></releases>
  </repository>

另请参阅项目网站上的 Eclipse 快速入门指南

于 2020-05-08T12:52:27.263 回答
3

尝试将存储库 URL 替换为:http ://repo.opengeo.org/

于 2013-09-29T10:38:02.673 回答
2

Maven 在其生命周期阶段之一下载 jar 并将其放入本地存储库我不确定是哪一个,但如果您运行mvn clean install它应该下载项目所需的所有 jar。

于 2013-09-29T10:21:18.417 回答
2

对我来说,添加以下内容可以解决问题。它尝试从以下 repo 中获取 GeoTools,因为它不在 maven Central 上。

<repository>
    <id>osgeo</id>
    <name>Geotools repository</name>
    <url>http://download.osgeo.org/webdav/geotools</url>
</repository>
于 2017-11-05T21:13:44.930 回答
2

这是一个很老的帖子,但我最近遇到了这个问题并通过替换解决了它

http://repo.opengeo.org/http://repo.boundlessgeo.com/main/

于 2019-05-14T05:57:25.457 回答
1

我遇到了同样的问题,用 URL“ http://repo.opengeo.org/ ”替换存储库对我有用!

于 2014-01-30T10:55:27.730 回答