Maven專案中匯入本地jar包(解決找不到類的問題)_IDEA
阿新 • • 發佈:2019-01-08
專案中需要臨時在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打包,然後編譯執行,問題解決;