maven三方私有jar本地读取

来源:互联网 发布:c语言 string类 编辑:程序博客网 时间:2024/06/15 15:47

web项目中需要引用第三方私有jar,又不想自己创建私服,所以问了一下度娘,很多文章都提到了两个参数(system,systemPath),

也就是这两个参数就能解决这个问题。仅仅做个笔记,害怕自己忘记。有更好的方式,欢迎留言。

以Linux系统下为例
1、将私有jar放入项目的/WEB-INF/lib目录
2、设置系统环境变量
a.编辑profile文件 vi /etc/profile
b.在末尾新增系统变量,如 export PRIVATE_THIRD_JAR=/zfc/work/source
c.退出并保存 wq 
d.使环境变量生效 source /etc/profile
3、项目的pom.xml修改
a.一般配置
<dependency>
 <groupId>xxxx</groupId>
 <artifactId>yyyy</artifactId>
 <version>3.2.2.8</version>
</dependency>
b.指定系统绝对路径配置
<dependency>
 <groupId>xxxx</groupId>
 <artifactId>yyyy</artifactId>
 <version>3.0.0.2</version>
 <scope>system</scope>
 <systemPath>${PRIVATE_THIRD_JAR}/zzzz/src/main/webapp/WEB-INF/lib/***.jar</systemPath>
</dependency>


说明:
1、PRIVATE_THIRD_JAR=/home/zfc/work 
a.PRIVATE_THIRD_JAR 这个名字可以自定义,只要项目pom.xml使用定义的名字即可
b./home/zfc/work 这个路径为源码所在路径,需要根据具体的自己路径设置
c.systemPath 私有jar必须放在WEB-INF/lib里面,不然maven打包的时候不会将jar拷贝至lib目录

2、 参数说明
<!-- 依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。 
              - compile :默认范围,用于编译 
              - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath 
              - runtime: 在执行时需要使用 
              - test: 用于test任务时使用 
              - system: 需要外在提供相应的元素。通过systemPath来取得 
              - systemPath: 仅用于范围为system。提供相应的路径 
              - optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用 --> 
          <scope> test </scope> 


        <!-- 仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件
               系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。 --> 
          <systemPath></systemPath>
3、操作时需要注意用户权限问题

0 0
原创粉丝点击