zoukankan      html  css  js  c++  java
  • Maven小白系列-01添加依赖并打包

    在开始之前,我们首先了解一下什么是Maven?

    通过百度百科了解到,Maven这个单词来自犹太语,是”知识的积累“的含义。其实简单的来说,就是方便的使用别人积累的知识,更方便的引用一些开源的类库。接下来专业一点的解释:”Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。“


    所谓的专业术语,就是一大堆屁话,谁会去一个字一个字的理解啊?Who Cares?


    现在我们使用Maven就是为了简单的添加第三方依赖,简单的构建项目,方便的打包jar或者war。


    Maven小白系列,我们会分为几个部分?

    01 添加依赖并打包

    02 添加本地jar包并打包

    03 将本地jar包导入本地maven库

    04 springboot打包jar和war

    05 Maven统一版本管理


    接下来,我们开始第一部分的内容

    一、打开InteliJ IDEA

    如果看到这边,有人跟我说,怎么打开InteliJ IDEA或者怎么安装,那我会很无奈的告诉你,你放弃吧,Java不适合你。

    二、新建Maven项目

    image


    image

    三、添加依赖

    image

    如果出来Enable Auto-Import 那就点一下呗,点一下又不吃亏,又不会少块肉。

    image

    我们来看一下目录结构,src不用多说,pom.xml就是Maven的项目对象模型,这个文件里包含项目依赖、插件、执行目标等内容

    image

    接下来,我们添加一个工具类的依赖,我们以Hutool为例

    我们所需要的第三方库,一般都可以从https://mvnrepository.com/ 搜到

    image

    从这儿能看到,最新版为5.3.8,我们点进去看看

    image

    红色框起来那些,复制一下,这就是我们添加依赖的写法


    修改POM,添加<dependencies></dependencies>标签对

    image

    将复制的Hutool的依赖,粘贴到这个标签中,粘贴完保存,会自动的下载

    image

    image


    四、编写代码

    不要关心代码,一切从简。

    image

    image


    image

    修改一下代码,使用Hutool,毕竟添加了依赖,不用它,怪可惜的,我们就使用Hutool的工具类获得屏幕分辨率,然后让窗体在屏幕中间显示

    image

    先说明一下,ScreenUtil获得宽高的时候,如果显示器设置缩放的话,会不准确。

    我们今天的主题是Maven使用,不用关心这些


    五、打包

    打包是什么?为什么要打包?

    打包就是将代码生成一个可执行的jar文件,发给别人的时候, 别人只要双击一下就能打开,不需要根据代码再编译。

    1.POM中新增<build></build>标签对

    image

    2.在<build>标签中,添加插件<plugins></plugins>标签对

    image

    3.添加项目依赖插件和打包插件,并设置入口类(main函数所在的类)

    <!-- 项目依赖插件  -->
    <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <configuration>
             <outputDirectory>${project.build.directory}/libs</outputDirectory>
             <excludeTransitive>false</excludeTransitive> <!-- 表示是否不包含间接依赖的包 -->
             <stripVersion>false</stripVersion> <!-- 去除版本信息 -->
         </configuration>

        <executions>
             <execution>
                 <id>copy-dependencies</id>
                 <phase>package</phase>
                 <goals>
                     <goal>copy-dependencies</goal>
                 </goals>
                 <configuration>
                     <!-- 拷贝项目依赖包到libs/目录下 -->
                     <outputDirectory>${project.build.directory}/install/libs</outputDirectory>
                     <excludeTransitive>false</excludeTransitive>
                     <stripVersion>false</stripVersion>
                 </configuration>
             </execution>
         </executions>
    </plugin>

    <!-- 设置jar的入口类 -->
    <!-- 打包插件 -->

    <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
         <version>3.0.2</version>
         <configuration>
            <archive>
                <!-- 生成MANIFEST.MF的设置 -->
                <manifest>
                    <!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
                     <addClasspath>true</addClasspath>
                     <classpathPrefix>libs/</classpathPrefix>
                     <!-- jar启动入口类-->
                     <mainClass>com.zjw.Main</mainClass>
                 </manifest>
             </archive>
             <includes>
                 <!-- 打jar包时,只打包class文件 -->
                 <include>**/*.class</include>
             </includes>
             <outputDirectory>${project.build.directory}/install</outputDirectory>
         </configuration>
    </plugin>


    image

    最后在Maven生命周期中点击install就能生成jar了





    image

    install结束后,会在target目录下,生成一个install文件夹,这个文件夹下的文件,就可以发给别人了

    image


    image


    image

    image

    image

  • 相关阅读:
    linux内核的若干问题
    shell(四)--turboastat
    Mac系统维护
    花卉养殖(1) 黄叶
    你就是佛(1)- 本体、开悟与思想
    linux 工具(2)----- crontab定时任务管理
    vim (四) 使用技巧
    linux kernel __init和__exit宏的作用
    优秀的网站
    Mac OSX 快捷键&命令行
  • 原文地址:https://www.cnblogs.com/zjwno1/p/13206039.html
Copyright © 2011-2022 走看看