maven手动添加本地jar包
java SE的套路
新建lib包,之后导入(eclipse直接build path)(idea麻烦些:File→project structure→libraries→+jar包)
优点:简单,不用做额外的配置
缺点:协作开发,多人都需做同样的操作,沟通也是一回事
2. pom文件scope的system属性
优点:配置后之后直接引入,maven reImport即可
缺点:没啥缺点,就是配置者得费些时间
前置条件
要引入如下taobao-sdk-java.jar
操作
- 自定义目录,这里在project的根目录新建lib文件夹,将jar放进去
- pom.xml中引入
<dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
</dependency>
注意:
- groupId:自定义
- artifactId:自定义
- version:自定义
- scope:必须是system
- systemPath:jar包的路径(idea编写的时候会有提示的)
通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况
但是,maven project部署一般打包发布,所以打包是需要额外配置的(上述的第一二中方式不需要做额外处理)
处理打包
打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
- directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可
- targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的话写./】
- includes:一般都是以jar结尾,就写**/*.jar
较为完整的pom.xml
<dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1479188381469-20190628.jar</systemPath>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
ok,mvn package即可。