2013-09-29 387 views
1

您好,我正在嘗試用maven編寫一個簡單的geotools項目。其實我對maven很陌生。我打開了新的Maven項目,我設置了設置並編寫了一些代碼。據我所知,maven應該下載並安裝geotools所需的jar文件。但是,我得到了「失蹤神器org.geotools:gt-shapefile:jar:11-SNAPSHOT」錯誤,我不明白爲什麼會這樣。Maven缺失神器org.geotools:gt-shapefile:jar:11-SNAPSHOT

我的工作envirement:

Eclipse的開普勒, 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); 
    } 

} 

我剛剛寫了我沒有下載或安裝任何罐子的代碼。我作爲maven項目打開了該項目。我想知道何時以及如何maven下載和安裝罐子?

謝謝。

回答

2

Maven在其生命週期的一個階段下載並將jar放入本地存儲庫我不確定哪一個,但是如果您運行mvn clean install它應該下載您的項目所需的所有jar。

+0

我應該在命令窗口「mvn claen install」中寫一條命令,還是我應該以某種方式做它不同? –

+0

是的,但您需要將maven bin目錄添加到系統PATH變量。 – smajlo

+0

請注意,這應該從您的項目目錄運行。 –

0

對我來說,添加以下內容解決了這個問題。它試圖讓GeoTools免於回購,因爲它不在Maven中心。

<repository> 
    <id>osgeo</id> 
    <name>Geotools repository</name> 
    <url>http://download.osgeo.org/webdav/geotools</url> 
</repository>