第一天 1.3 maven的打包与发布

架构探险(第一天):maven的打包与发布

这里以一个生成二维码的demo为例子,测试如何通过idea打包,然后将jar包发布到maven的本地库。

idea新建一个项目,然后将项目上传到github,不会的点这里

我的QRcode项目的地址点这里

用maven命令打jar包之前说过了,现在谈谈怎么在idea里面打jar包,以及上传到本地maven库。

打jar包

直接用maven命令打出来的jar包不包含依赖,比如说我的QRcode项目使用了zxing,但是结果我打出来的jar包不含zxing,这样就很麻烦。

所以我们要用插件,将本项目所用的依赖一起打进jar包的插件,这里我们用的是maven-assembly-plugin

看一下我项目的pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>top.changelife</groupId>
    <artifactId>QRcode</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.3</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>QRcode</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
                        <phase>package</phase> <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这里写图片描述
如果所示,点开idea里面maven的操作视图,可以先clean一下,然后package打包,然后去target中看结果。会发现target中有两个jar包,一大一小,小的先不管,将大的拷贝到到你喜欢的目录下,用压缩软件打开看一下就会发现这里面包含了你依赖的jar包的所有class文件,这就说明成功了。
这里写图片描述

其实maven打包的插件有很多,所以各种pom里面的配置我也很头疼,虽然这里打包出来的jar包是两个,我也就忍了,以后有空再研究。

之前我都是用springboot打包的插件,那个在新建springboot项目的时候自己就带出来了,以至于我觉得所有的打包都是那样的不用自己配置,结果今天才知道不同的插件不同的效果,细思极恐啊。。。

发布到本地maven库

命令mvn install:install-file -Dfile=C:\android\QRcode.jar -DgroupId=top.changelife -DartifactId=QRcode -Dversion=1.0 -Dpackaging=jar
然后去.m2文件夹下面看结果:
这里写图片描述
然后在新的项目中引用:

<dependency>
    <groupId>top.changelife</groupId>
    <artifactId>QRcode</artifactId>
    <version>1.0</version>
</dependency>

发布到maven中央库

我是按照这个博客流程一步一步走的,这里就不再复制轮子了。

虽然有点痛,不过第一次不都这样吗,终于算是把这个简单的jar包传到maven中央库上去了,在pom中配置:

<dependency>
  <groupId>top.changelife</groupId>
  <artifactId>QRcode</artifactId>
  <version>1.0-RELEASES</version>
</dependency>

功能就一个,输入内容和路径,生成二维码,调用方式如下:

//QRcode.getQRcode(String content, String codePath);
QRcode.getQRcode("http://www.changelift.top","E:/a.jpg");

后期会继续完善,可以关注我的github地址https://github.com/351524388/QRcode

猜你喜欢

转载自blog.csdn.net/m0_37659871/article/details/80815653
1.3