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

  • 打包成jar
  • 引入这个jar
    • 安装到本地仓库
    • 直接指定jar包的位置

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

打包成jar

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

   <build>
        <plugins>
            
            <plugin>
                <artifactId>maven-assembly-pluginartifactId>
                <executions>
                    <execution>
                        <phase>packagephase>
                        <goals>
                            <goal>singlegoal>
                        goals>
                    execution>
                executions>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependenciesdescriptorRef>
                    descriptorRefs>
                configuration>
            plugin>
        plugins>
    build>

把这一段放到pom里面,前面就可以。

然后再运行:

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.httpgroupId>
        <artifactId>android-async-httpartifactId>
        <version>1.3.2version>
        <type>jartype>
        <scope>systemscope>
        <systemPath>${project.basedir}/libs/android-async-http-1.3.2.jarsystemPath>
    dependency>

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

你可能感兴趣的:(Java)