目录

  • 在线构建
  • 1.配置pom.xml
  • 2 释放资源
  • 离线构建
  • 1 部署jar包
  • 2 导入jar包
  • 3 释放资源
  • 运行测试


在线构建

一般情况下,优先使用在线构建方式。

1.配置pom.xml

您可以参照下列代码完成实现您的项目的pom.xml。当然这个前提是您的项目是一个maven工程。完成此步骤可以解决“程序包com.esri.arcgisruntime.geometry不存在”的报错。可以顺利下载arcgis-java依赖。

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>cn.wja</groupId>
<artifactId>gis-demo-online</artifactId>
<version>1.0-SNAPSHOT</version>

<name>gis-demo-online</name>
<url>https://blog.csdn.net/monarch91</url>
<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <arcgis.version>100.12.0</arcgis.version>
</properties>
<repositories>
  <repository>
    <id>arcgis</id>
    <url>https://esri.jfrog.io/artifactory/arcgis</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>com.esri.arcgisruntime</groupId>
    <artifactId>arcgis-java</artifactId>
    <version>${arcgis.version}</version>
  </dependency>
  <dependency>
    <groupId>com.esri.arcgisruntime</groupId>
    <artifactId>arcgis-java-jnilibs</artifactId>
    <version>${arcgis.version}</version>
    <type>zip</type>
  </dependency>
  <dependency>
    <groupId>com.esri.arcgisruntime</groupId>
    <artifactId>arcgis-java-resources</artifactId>
    <version>${arcgis.version}</version>
    <type>zip</type>
  </dependency>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
</dependencies>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>3.1.1</version>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>com.esri.arcgisruntime</groupId>
            <artifactId>arcgis-java-jnilibs</artifactId>
            <version>${arcgis.version}</version>
            <type>zip</type>
            <overWrite>true</overWrite>
            <outputDirectory>${user.home}/.arcgis/${arcgis.version}</outputDirectory>
          </artifactItem>
          <artifactItem>
            <groupId>com.esri.arcgisruntime</groupId>
            <artifactId>arcgis-java-resources</artifactId>
            <version>${arcgis.version}</version>
            <type>zip</type>
            <overWrite>true</overWrite>
            <outputDirectory>${user.home}/.arcgis/${arcgis.version}</outputDirectory>
          </artifactItem>
        </artifactItems>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.0</version>
      <configuration>
        <release>11</release>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.6.0</version>
      <executions>
        <execution>
          <goals>
            <goal>java</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <mainClass>com.example.app.App</mainClass>
      </configuration>
    </plugin>
    <plugin>
      <groupId>io.takari</groupId>
      <artifactId>maven</artifactId>
      <version>0.7.4</version>
    </plugin>
  </plugins>
</build>
</project>

如果您完成上述pom.xml配置后,还是有部分jar包无法正常下载。那就请参照下列配置修改下Maven的seting.xml。主要要注意mirrorOf不能是 “ * ” 。

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	
  <pluginGroups></pluginGroups>
  <proxies></proxies>
  <servers></servers>
  <localRepository>G:\Repository</localRepository>

  <mirrors>
	<mirror>
		<id>aliyun-public</id>
		<mirrorOf>central</mirrorOf>
		<name>aliyun public</name>
		<url>https://maven.aliyun.com/repository/public</url>
	</mirror>
  </mirrors>

  <profiles></profiles>
</settings>

2 释放资源

如下图所示,在项目根目录运行mvn dependency:unpack以释放ArcGIS Runtime API for Java的资源到您的用户目录。

java开发arcgis插件 arcgis java_java

完成此步骤可以解决如下报错,也就是找不到运行环境的报错。

Caused by: java.lang.RuntimeException: Could not find runtime in any of:
- A directory specified by calling ArcGISRuntimeEnvironment.setInstallDirectory()
- The current directory F:\Code\Intimate\other\gis-demo
- A location specified by the environment variable ARCGISRUNTIMESDKJAVA_100_10_0
- Within the “.arcgis” directory in the user’s home path C:\Users\admin.arcgis

离线构建

如果示例的pom文件中的仓库的链接无法访问,您就需要下载相关资源离线构建。
资源下载链接为:
下载后是一个zip压缩文件,解压后会得到arcgis-java-100.12.0.jar,arcgis-java-jnilibs-100.12.0.zip,arcgis-java-resources-100.12.0.zip三个文件。
上述资源就是maven从公开在线仓库中下载到本地后,我从本地仓库复制出来并打包的。整个过程未曾接收到任何关于收费的提示,但我也未查询到 ArcGIS Runtime API for Java 的供应商Esri 有表明这款软件是可以免费使用的开源软件。因此如需在实际项目开发中使用ArcGIS Runtime API for Java,请先向Esri公司咨询授权的相关事宜,避免不必要的纠纷和损失。现在也有国产替代产品GeoScne Runtime SDK for Java,可以联系易智瑞公司获得相关资源和授权。如果您希望使用开源软件完成类似功能,建议查询一下geotools。

1 部署jar包

您需要在arcgis-java-100.12.0.jar所在的路径下运行以下命令,将jar文件部署到本地maven仓库中。

mvn install:install-file -Dfile=arcgis-java-100.12.0.jar -DgroupId=com.esri.arcgisruntime -DartifactId=arcgis-java -Dversion=100.12.0 -Dpackaging=jar

2 导入jar包

在pom.xml中加入如下依赖。

<dependency>
    <groupId>com.esri.arcgisruntime</groupId>
    <artifactId>arcgis-java</artifactId>
    <version>${arcgis.version}</version>
  </dependency>

3 释放资源

您可以将arcgis-java-jnilibs-100.12.0.zip,arcgis-java-resources-100.12.0.zip 两个压缩包直接解压在项目根路径。项目结构如下图所示:

java开发arcgis插件 arcgis java_java_02


如果您不想放在项目中,也可以在用户文件夹下创建.arcgis\100.12.0文件夹,然后将压缩文件夹解压到此。

java开发arcgis插件 arcgis java_xml_03

运行测试

无论是采用在线构建还是离线构建,都能测试出一样的结果。测试结果未发现异常。

本文的示例代码下载链接:

java开发arcgis插件 arcgis java_maven_04