Java - Maven项目打包成jar给第三方使用(带依赖打包)

2023-11-10

由于我们写项目的时候,有的时候并不是一个独立项目,而是作为一个第三方类库来提供服务的存在,用来给别的项目引入作为某个功能的封装。

打包成jar

解决方案主要是从pom.xml来入手,因为是maven项目,所以在pom里面加入build的参数,然后就可以了。

   <build>
        <plugins>
            <!-- any other plugins -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

把这一段放到pom里面,</project>前面就可以。

然后再运行:

mvn assembly:assembly

就可以在target里面看到一个jar-with-dependencies的jar包了。

引入这个jar

那这个jar包如何放到现在已经有的maven项目里呢?

安装到本地仓库

通过下面这个命令,来把这个jar包安装到本地的仓库里,然后在pom里面直接引入就好了

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

参考文档:http://maven.apache.org/general.html#importing-jars

直接指定jar包的位置

直接把jar包放到一个自己觉得合适的路径下,一般放到自己的工程项目下,然后直接在pom中指定jar包的位置:

<dependency>
        <groupId>com.loopj.android.http</groupId>
        <artifactId>android-async-http</artifactId>
        <version>1.3.2</version>
        <type>jar</type>
        <scope>system</scope>
        <systemPath>${project.basedir}/libs/android-async-http-1.3.2.jar</systemPath>
    </dependency>

这里的systemPath就是jar包的位置,可以使用绝对路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java - Maven项目打包成jar给第三方使用(带依赖打包) 的相关文章

随机推荐