Использование GeoTools без Maven

Я написал некоторый код Java, используя библиотеку geotools, используя инструмент сборки maven. Этот небольшой код успешно работает, когда я запускаю его как независимое приложение Java в проекте maven. Но поскольку мне нужно было использовать этот фрагмент кода в другом проекте, где у меня нет maven, я скопировал все файлы jar из папки Maven Dependencies в проекте maven в мой другой проект и добавил их как внешние банки/зависимости. Но этот фрагмент кода не запускается в новом проекте, когда я запускаю его как java-приложение в eclipse. Вот фрагмент кода и трассировка стека.:

38.    public static void main(String[] args) throws Exception {
39.     File file = new File("path to shapefile");
40.     modifyShapeFile(file);
    ...........................................
    ............................
    }
52.   public static void modifyShapeFile(final File file) throws Exception {
53.     ShapefileDataStore store = (ShapefileDataStore) FileDataStoreFinder
                .getDataStore(file);
54.     SimpleFeatureSource featureSource = store.getFeatureSource();
55.     SimpleFeatureStore featureStore = (SimpleFeatureStore) featureSource;
56.     Transaction transaction = new DefaultTransaction("modify");
57.     featureStore.setTransaction(transaction);
58.     SimpleFeatureType featureType = store.getSchema();
59.     SimpleFeatureBuilder build = new SimpleFeatureBuilder(featureType);
        ........................................................
        .........................................................

Трассировки стека:

Exception in thread "main" java.lang.NoSuchFieldError: METER
    at org.geotools.referencing.wkt.Parser.parseSpheroid(Parser.java:560)
    at org.geotools.referencing.wkt.Parser.parseDatum(Parser.java:656)
    at org.geotools.referencing.wkt.Parser.parseGeoGCS(Parser.java:867)
    at org.geotools.referencing.wkt.Parser.parseProjCS(Parser.java:913)
    at org.geotools.referencing.wkt.Parser.parseCoordinateReferenceSystem(Parser.java:225)
    at org.geotools.referencing.wkt.Parser.parseCoordinateReferenceSystem(Parser.java:204)
    at org.geotools.referencing.factory.ReferencingObjectFactory.createFromWKT(ReferencingObjectFactory.java:1090)
    at org.geotools.data.PrjFileReader.<init>(PrjFileReader.java:94)
    at org.geotools.data.PrjFileReader.<init>(PrjFileReader.java:68)
    at org.geotools.data.shapefile.ShapefileSetManager.openPrjReader(ShapefileSetManager.java:106)
    at org.geotools.data.shapefile.ShapefileFeatureSource.readAttributes(ShapefileFeatureSource.java:515)
    at org.geotools.data.shapefile.ShapefileFeatureSource.buildFeatureType(ShapefileFeatureSource.java:471)
    at org.geotools.data.shapefile.ShapefileFeatureStore.buildFeatureType(ShapefileFeatureStore.java:131)
    at org.geotools.data.store.ContentFeatureSource.getAbsoluteSchema(ContentFeatureSource.java:340)
    at org.geotools.data.store.ContentFeatureSource.getSchema(ContentFeatureSource.java:309)
    at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:339)
    at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:712)
    at org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:197)
    at com.amazon.marketplacevolumeviewer.shapefile.ModifyShapeFile.modifyShapeFile(ModifyShapeFile.java:58)
    at com.amazon.marketplacevolumeviewer.shapefile.ModifyShapeFile.main(ModifyShapeFile.java:40)

Файл pom.xml для проекта maven соответствует этому руководству: http://docs.geotools.org/latest/userguide/tutorial/quickstart/eclipse.html.

К этим файлам jar не прикрепляется исходный код, поэтому я не смог проследить трассировку стека.


person jps    schedule 03.09.2015    source источник
comment
Возможно конфликт версий. В проекте Maven сделайте зависимость mvn:tree, возможно, там есть несколько версий одних и тех же библиотек?   -  person Gimby    schedule 03.09.2015
comment
Разве вы не можете сделать свой другой проект проектом Maven? Потому что это одна из вещей, которыми славится Maven: нет необходимости копировать jar файлов.   -  person Gerold Broser    schedule 03.09.2015
comment
Это уже проект ANT, и мне нужно использовать только ANT.   -  person jps    schedule 04.09.2015


Ответы (1)


Пожалуйста, используйте Maven при использовании GeoTools — даже для таких закаленных разработчиков, как я, почти невозможно отслеживать все зависимости, которые нужны GeoTools.

По крайней мере, запустите mvn dependency:list в сборке geotools, чтобы показать, какие файлы вам нужны, а не копировать вслепую. Возможно, вам нужно подобрать jar-файл плагина и связанные с ним зависимости.

Глядя на вашу ошибку, можно предположить, что, возможно, вам не хватает системы единиц, которая находится в net.java.dev.jsr-275.jar.

person Ian Turton    schedule 04.09.2015