美文网首页
IDEA maven项目引用其他项目生成的SDK jar包

IDEA maven项目引用其他项目生成的SDK jar包

作者: 陈煦缘 | 来源:发表于2020-04-08 19:05 被阅读0次

    前言

    最近碰到一个需求,需要在项目中,引入一个其他项目的SDK jar包。

    引入 jar包

    1. 创建目录
    在项目的src平级目录新建文件夹 lib
    
    2. 将刚才生成好的jar包放入该文件夹下
    image.png
    3.将该文件引入项目
    菜单处选择 File--Project Structure...
    然后 左侧选择Modules点击 右侧+,如图。
    
    image image
    4. 找到项目目录下的jar包,导入
    image.png
    5. 在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

    相关文章

      网友评论

          本文标题:IDEA maven项目引用其他项目生成的SDK jar包

          本文链接:https://www.haomeiwen.com/subject/hvxxmhtx.html