项目中需要临时在maven中导入一个本地的jar,开始是在maven中这样配置的:
<dependency> <groupId>com.dtdream.dthink</groupId> <artifactId>uim-mock-sdk</artifactId> <version>1.1-SNAPSHOT</version> <scope>system</scope> <systemPath>D:/Driver/uim-mock-sdk-1.1-SNAPSHOT.jar</systemPath> </dependency> <dependency> <groupId>com.dtdream.dthink</groupId> <artifactId>uim-mock-utils</artifactId> <version>1.1-SNAPSHOT</version> <scope>system</scope> <systemPath>D:/Driver/uim-mock-utils-1.1-SNAPSHOT.jar</systemPath> </dependency>
然后maven install jar,但是在编译过程中会一直报错ClassNotFound,找不到jar包中的某个类,此时在项目中打开dependencies可以看到是有这个类的,初步怀疑是没有把jar包打包到项目的war中;
于是,直接将jar包放入项目中,项目目录下定义lib文件夹,将jar包放入该文件夹下。同时pom.xml文件这样配置:
<dependency> <groupId>com.dtdream.dthink</groupId> <artifactId>uim-mock-sdk</artifactId> <version>1.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/uim-mock-sdk-1.1-SNAPSHOT.jar</systemPath> </dependency> <dependency> <groupId>com.dtdream.dthink</groupId> <artifactId>uim-mock-utils</artifactId> <version>1.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/uim-mock-utils-1.1-SNAPSHOT.jar</systemPath> </dependency>
在pom.xml的maven-war-plugin中配置如下:
<resource>
<directory>${project.basedir}/lib</directory><targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>*.jar</include>
</includes>
</resource>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <webResources> <resource> <directory>${project.build.directory}/xxxxxx/</directory> </resource> <resource> <directory>${project.basedir}/lib</directory> <targetPath>WEB-INF/lib</targetPath> <filtering>false</filtering> <includes> <include>*.jar</include> </includes> </resource> </webResources> <warSourceExcludes>view/master/**</warSourceExcludes> <packagingExcludes>**/*.map</packagingExcludes> </configuration> </plugin>
后若有其他缺少的jar,在pom中引入,重新mvn打包,然后编译运行,问题解决;