前言
最近碰到一个需求,需要在项目中,引入一个其他项目的SDK jar包。
引入 jar包
1. 创建目录
在项目的src平级目录新建文件夹 lib
2. 将刚才生成好的jar包放入该文件夹下
image.png3.将该文件引入项目
菜单处选择 File--Project Structure...
然后 左侧选择Modules点击 右侧+,如图。
image
image
4. 找到项目目录下的jar包,导入
image.png5. 在pom中引入
<dependency>
<groupId>com.frank</groupId>
<artifactId>xxx-sdk</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/xxx-sdk-1.0.0.jar</systemPath>
</dependency>
其中groupId和artifactId 没有严格限制,最好用引入jar包的包名
问题
image.png如果出现以上问题,引入jar包但jar包的依赖没有引用到,很可能是提供的sdk jar包有问题。SDK对外应该提供有生成包含所有依赖的jar包。
maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在;
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在当前项目下执行mvn package, 执行成功后会在target文件夹下多出一个以-jar-with-dependencies结尾的JAR包. 这个JAR包就包含了项目所依赖的所有JAR的CLASS。
image.png
网友评论