几步搞定Maven+Eclipse做ArcObjects二次开发

来源:互联网 发布:mac上如何制作铃声 编辑:程序博客网 时间:2024/05/13 08:45

三部曲


在文章《Eclipse工具做ArcObjects二次开发环境配置(非UI》中我们已经提到AE工程是无法通过Maven来管理arcobjects.jar文件的,那么如何在maven+eclipse的项目中做AE开发呢?下面我们就来实现它:

第一步:在项目的构建路径中引入arcobjects.jar文件,记得是在arcgis安装目录下的jar文件,不要将它拷贝出来。具体如何引入项目外的jar包相信大家都知道,我就不再赘述了。完成这一步之后,你就可以在项目中调用arcobjects.jar提供所有类与方法了,在编译阶段不会出现任何问题,甚至你不同通过服务的方式运行程序都不会出现问题。但是当你用jetty或者tomcat启动项目是,你会发现你的jar发现不了,什么原因呢?请看第二步!

第二步:出现第一步最后问题的原因就是maven无法管理你本地引用的jar文件,它管理的文件必须是你本地仓库的文件。好,那么我把我的jar文件上传到私服,然后现在到本地,通过下面的依赖文件可不可以?

<dependency>

<groupId>com.esri.arcgis</groupId>

<artifactId>arcobjects</artifactId>

<versions>1.0</versions>

</dependency>

回答是否定的!一开始就说了不能通过maven管理arcobject的jar文件。那么如何解决呢?其实很简单,在项目的pom.xml文件中build标签内加入下面红色字体就可以了。

<build>

<finalName>xxx<finalName>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.26<version>

<configuration>

<stopKey>/</stopKey>

<stopPort>8088</stopPort>

<webAppConfig>

<contextPath>/jqyp</contextPath>

<extraClassopath>D:\ArcGIS\Desktop10.0\java\lib\arcobjects.jar</extraClassopath>

</ webAppConfig>

</configuration>

</plugin>

</plugins>

</build>

这样你会发现无论是编译阶段还是本地运行阶段都没有任何问题了!呵呵呵呵

但是有一个问题,当我们把项目打成war包时,pom.xml文件是不会被打进去的,它只是maven的一个管理文件,与运行项目没有关系!那该如何解决呢?

第三步:要解决上面的问题就要在运行时来解决了!其实很简单,以tomcat为例我解释一下,其实项目依赖的arcobjects.jar文件与ArcGIS运行时环境只要在环境里面里面就可以了,这样项目就可以找到依赖,可是我们的环境中并没有jar的环境变量,说道这里大家应该知道怎么弄了,就是在CLASSPATH环境变量中加入jar的路径!很聪明,这样完全可以,可是还有一个更好的办法:在免安装版tomcat的Catalina.bat文件中加入下面红色的一句话就搞定了:

If not exist “%CATALINA_BASE%”==xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Set xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

:gotBase

 

set CLASSPATH= D:\ArcGIS\Desktop10.0\java\lib\arcobjects.jar;%CLASSPATH%;

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这样你发布的程序在启动时,tomcat会去给你自动加载此jar包,嘿嘿,都搞定了!

1 0
原创粉丝点击