SpringBoot集成<个推推送> Maven 下载jar包异常处理本地打包下载

问题描述

公司需要对用户进行消息推送,选择了个推,由于是Java进行开发,个推操作文档,

这是官网上安装的方式,可是不成功,无论怎么样都无法把Jar包下载下来!

MAVEN方式(本人测试Jar无法下载)
<!--在Maven的pom文件中添加-->
<dependency>
    <groupId>com.gexin.platform</groupId>
    <artifactId>gexin-rp-sdk-http</artifactId>
    <version>4.1.1.0</version>
</dependency>
<!--增加一个repository到 pom.xml 中-->
 <repositories>
    <repository>
        <id>getui-nexus</id>
        <url>http://mvn.gt.igexin.com/nexus/content/repositories/releases/</url>
    </repository>
 </repositories>

解决办法

将Jar包文件下载下来,也是官网上的第二种方法: 点我下载jar包

问题又来了,SpringBoot如何将jar包添加到项目中呢?

  • 我想到的办法是(将本地的jar包使用maven打包到本地仓库中)(测试不通)
  • 打包命令为:
 语法:  mvn install:install-file -Dfile=[jar包名称] -DgroupId=[包名称] -DartifactId=[项目名称] -Dversion=[版本号] -Dpackaging=jar
 实例:  mvn install:install-file -Dfile=gexin-rp-fastjson-1.0.0.4.jar -DgroupId=com.gexin.platform   -DartifactId=gexin-rp-fastjson -Dversion=1.0.0.4 -Dpackaging=jar

很不幸,此办法对于<个推>来说是不可行的,<个推>中封装了很对类库,将jar包一个一个打包,运行起来类库无法被加载 会报异常的.

java.lang.ClassNotFoundException: com.google.protobuf.MessageOrBuilder
  • 第二种办法(可行)
    步骤如下:
  • 1.在src同级目录新增 lib目录

    在src同级目录新增 lib目录
  • 2.将jar包粘贴到lib目录下

    将jar包粘贴到lib目录下
  • 3.将lib目录添加到类路径中

    将lib目录添加到类路径中
  • 4.在pom中添加resurces标签

    在pom中添加resurces标签
    标签内容为:
     <!--引入本地资源-->
        <resources>
            <resource>
                <directory>lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </resources>
    

此时已完成Jar文件的添加.就可以编写<个推>上的实例代码了!如果将SpringBoot打包为jar包的话会出现问题!如何解决?

在pom中添加依赖

  <!--推送相关的Jar 文件
            注意: 以下的坐标信息,
            <groupId>
            <artifactId>
            <version>
             简称GAV,以下的GAV内容并不重要
             需要添加对应的本地jar 文件
                <scope>system</scope>
                <systemPath>${project.basedir}/lib/xxxx.jar</systemPath>
         -->
        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-http</artifactId>
            <version>4.0.1.17</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/gexin-rp-sdk-http-4.1.1.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-base</artifactId>
            <version>4.0.0.32</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/gexin-rp-sdk-base-4.0.0.32.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-fastjson</artifactId>
            <version>1.0.0.4</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/gexin-rp-fastjson-1.0.0.4.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.gexin.platform</groupId>
            <artifactId>gexin-rp-sdk-template</artifactId>
            <version>4.0.0.25</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/gexin-rp-sdk-template-4.0.0.25.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>java.gubin</groupId>
            <artifactId>protobuf</artifactId>
            <version>0.1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/protobuf-java-2.5.0.jar</systemPath>
        </dependency>

完成!

原文地址:https://www.cnblogs.com/gu-bin/p/12493585.html