maven管理本地jar包注意事项

时间:2023-12-20 22:45:50

今天lucene中集成第三方中文分词器IKAnalyzer的时候遇到了相似的问题:lucene版本4.9、IKAnalyzer版本2012FF_hf1

直接去maven仓库下载,pom配置如下:


 <dependency>
<groupId>IKAnalyzer</groupId>
<artifactId>IKAnalyzer</artifactId>
<version>2012FF_hf1</version>
</dependency>

发现maven仓库里没有!只能自己配置将本地jar包添加到maven

 <dependency>
<groupId>org.wltea</groupId>
<artifactId>IKAnalyzer</artifactId>
<version>2012FF_hf1</version>
<scope>system</scope>
<systemPath>E:/myjars/IKAnalyzer2012FF_u1.jar</systemPath>
</dependency>

好了,编译通过。但是问题来了运行时报错:java.lang.NoClassDefFoundError: org/wltea/analyzer/lucene/IKAnalyzer

查了maven的依赖发现IKAnalyzer已经在里面了。

问题在这:

最后查了target/SSMDemo/WEB-INF/lib文件,没有IKAnalyzer的jar!运行时依赖jar都在这里面,没有当然会报错~

改正方法:

项目目录下降lib文件夹,将IKAnalyzer2012FF_u1.jar放进去。

修改pom文件的依赖

 <dependency>
<groupId>org.wltea</groupId>
<artifactId>IKAnalyzer</artifactId>
<version>2012FF_hf1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/IKAnalyzer2012FF_u1.jar</systemPath>
</dependency>

最后我们必须在maven打包的过程中加入我们这个jar包。因为项目运行的时候需要这个Jar,并且我们得拷贝在WEB-INF/lib目录下

在pom文件的<build>下的<plugins>下加入

     <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
<version>2.1.1</version>
    </plugin>

ok,完事!