玩转Maven
文章平均质量分 95
在这个系列,给大家介绍我们平常最实用的maven使用技巧以及各种场景的应用
流年五十前
知之为知之,不知为不知,是知也
展开
-
Maven基础教程 - 初学者的完全指南
Maven作为一个受欢迎的自动化建设工具,专注于Java平台项目的构建和依赖管理。它通过自动下载并集成jar包及其版本,解决了jar包版本兼容问题,同时提高了项目管理和构建过程的效率,尤其受到LinkedIn等平台开发者的关注。此外,Maven的插件可在不同项目中重复使用,它遵循“约定大于配置”的原则,减少了配置工作量和学习成本。为Java项目提供了一个标准化的目录结构和项目管理方法,使得它成为开发者在LinkedIn等专业网络中分享项目和协作的首选工具。原创 2024-03-29 19:09:50 · 858 阅读 · 0 评论 -
maven插件maven-dependency-plugin使用详解
maven-dependency-plugin插件时一个依赖管理插件,大部分情况下我们使用它都是和maven-jar-plugin配合来使用,将项目的执行jar和依赖的jar进行分离处理,这样可以减少项目执行jar的大小。除了上面的功能,maven-dependency-plugin还提供了很多其他的操作,下面我们通过实例来看看如何使用这个插件。原创 2024-02-25 06:30:00 · 5314 阅读 · 0 评论 -
maven的升级版maven-mvnd的使用详解
在Java代码编译和构建领域里面,最常见的是ant、maven、gradle。这三个编译工具都有各自强大的功能。目前ant基本已经被时代抛弃,主流的工具还是maven和gradle,但是gradle的服务领域大部分还是在Android开发,在服务端开发方面,maven任然是主流。但是maven也还是有很多的不足,比如基于xml格式的配置,相对应gradle来说,灵活度不够。另外编译时速度慢,内存占用高等情况。为了解决编译速度的问题,有一个maven-mvnd的工具诞生了。原创 2024-02-24 06:15:00 · 1506 阅读 · 0 评论 -
maven插件wagon-ssh、os-maven-plugin、buildnumber-maven-plugin使用详解
有时我们在构建项目时,希望能自动生成版本号或者生成不同操作系统标识的版本后缀,这时我们可以通过os-maven-plugin、buildnumber-maven-plugin这两个插件来完成。如果我们想在构建完成后再进行上传操作,比如将打包后的文件上传到固定的发布目录,或者直接进行自动更新操作,这时我们可以使用wagon-ssh插件来完成这样的功能。上面三个插件大家可以根据自己的项目情况来配合使用,如有错误的地方欢迎大家留言提醒。原创 2024-02-23 12:15:59 · 2070 阅读 · 2 评论 -
maven插件maven-shade-plugin打包jar文件使用详解
在使用maven打包Java里,除了maven-jar-plugin和maven-assembly-plugin可以打包jar文件外,使用maven-shade-plugin也可以将程序打包成jar文件。maven-shade-plugin插件的功能也很强大,能够进行高度定制化jar的打包规则。在前面的插件介绍中,关于打包jar的插件我们已经介绍了2个,maven-jar-plugin和maven-assembly-plugin,包含今天介绍的,总共有3种方式来打包jar。原创 2024-02-22 06:15:00 · 4972 阅读 · 1 评论 -
maven插件exec-maven-plugin、maven-antrun-plugin使用详解
在使用maven构建项目时,有时我们可能需要执行一些系统命令来协助完成。这个时候就可以使用exec-maven-plugin和maven-antrun-plugin这两个插件。exec-maven-plugin的主要功能类似于一个后台控制台,我们在控制台执行的命令,都可以借助它来完成。maven-antrun-plugin的主要功能是执行一些ant任务,在maven还没诞生的时候Java代码主要编译工具是ant,因此为了要兼容老的ant编译,使用maven-antrun-plugin就能完成。原创 2024-02-21 07:00:00 · 6918 阅读 · 0 评论 -
maven插件maven-assembly-plugin打包归纳文件zip/tar使用详解
java项目运行的文件需要jar或者war格式,同时还需要使用Java命令。同时还可能包含一些外部的资源文件。因此要运行一个Java项目,需要多个文件配合才能启动。因此再发布的时候,我们可以使用maven-assembly-plugin插件,将我们项目需要的所有资源打包成一个zip或者gz的压缩包,这样我们发布出去的项目就是一整套运行环境,我们常用的一些中间件,比如Tomcat、zookeeper等都这样发布。下面给大家详细介绍通过maven-assembly-plugin来制作自己的发布包。原创 2024-02-20 06:15:00 · 6401 阅读 · 0 评论 -
maven插件maven-compiler-plugin编译Java代码使用详解
Java项目要运行,必须要经过编译过程,就是将我们的源代码编译成jvm平台的字节码才能真正运行起来。如果我们使用命令行来操作就要使用javac命令,这个命令来生成字节码,然后再使用java命令来运行。虽然在Java8以后可以直接通过Java命令来操作,但是其内部还是必须先编译字节码。但使用maven编译Java项目时,maven-compiler-plugin是默认的编译插件,我们可以理解为maven-compiler-plugin插件做了javac的工作,而且通过配置能实现自由编译我们的源代码。原创 2024-02-19 12:59:42 · 8362 阅读 · 1 评论 -
maven插件maven-jar-plugin构建jar文件详细使用
maven-jar-plugin插件时maven中最常用的插件,也是maven构建Java程序执行包或者依赖包的默认插件,大部分情况下我们不需要对其进行配置,但在特殊情况下,我们可以通过配置来定制我们的jar包。与maven-jar-plugin相同的还有一个maven-war-plugin插件,用于将我们的程序打包成war格式的执行包,也是maven默认的打包工具。这个主要用于web项目。它的用法和maven-jar-plugin完全一样,大家可以参照上面的使用。原创 2024-02-08 10:48:21 · 5085 阅读 · 0 评论 -
maven插件docker-maven-plugin打包镜像并发布到dockerHub
如果我们的项目要在docker中运行,那么就必须要把我们的项目生成docker镜像,如果要实现远程安装,也就必须要把镜像发布到远程仓库里,如果我们没有自己的私有docker仓库,那么我们可以使用免费的。目前我们常见的免费仓库是dockerHub。今天给大家介绍如何将Java项目通过maven插件来制作docker镜像并自动发布到dockerHub平台上。1、上面我们介绍了如何将镜像上传到docker hub,对应想要公开的项目,这里提供了可以免费使用的仓库。原创 2024-02-07 07:00:00 · 1082 阅读 · 3 评论 -
在maven环境中使用GraalVM来构建本地原生应用程序(二)构建docker镜像
在上一节中,我们分享了如何构建本地的执行文件,如果你的程序要在多平台下运行,就必须得到对应的操作系统上去编译,这是GraalVM的一个不足之处。但如果我们的程序要在docker下运行,那我们就可以直接使用docker来进行编译。这样就减少了对本地平台的依赖。下面我们来看看如何在docker下编译1、GraalVM可挖掘的东西还很多,我分享的这些东西也只是皮毛,希望大家共同去探索交流,因为GraalVM确实能解决一些性能问题。2、至于是原生还是JVM需要根据项目的需求而定,所有的模式都是可选方案。原创 2024-02-06 07:00:00 · 979 阅读 · 1 评论 -
在maven环境中使用GraalVM来构建本地原生应用程序(一)构建本地可执行文件
随着Java17的更新,jdk又推出了一个GraalVM平台,关于GraalVM的相关资料大家可以去官网了解,点击这里进入官网。什么是GraalVM?我感觉用一句话来解释就是:把Java程序编译成本机的可执行的二进制代码。之前的Java一直运行在JVM平台上,所谓的Java跨平台性,其实完全依赖的是JVM的跨平台性,我们发布的所有Java程序,都必须安装一个JVM的平台,这样在操作性上还是有很多不便。原创 2024-02-05 07:15:00 · 1756 阅读 · 1 评论 -
使用maven对springboot项目进行瘦身分离jar的多种处理方案
springboot项目打包一般我们都使用它自带的spring-boot-maven-plugin插件,这个插件默认情况下,会把所有的依赖包全部压缩到一个jar里面。在有时这给我们的部署或者更新带来很多的不方便,有的项目很大,最终的打包文件甚至可以达到几百M,有时可能我们只修改了一个小bug,更新时却要上传几百M的安装包,极度不方便,今天给大家分享几种方案来如何减小我们的打包文件,已方便我们的更新操作。我们构造一个测试项目,具体的依赖如下:原创 2024-02-04 07:45:00 · 2143 阅读 · 1 评论 -
在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(三)开发和发布自己开发的maven插件
在上一节中我们分享了怎么开发和部署自己开发的jar包到maven私有库中,今天给大家介绍如何开发一个maven插件,我们在使用maven时,用的最多的就是maven的插件,而且这也是maven最核心的东西,maven的插件功能能帮助我们在构建、编译、发布项目的时候完成很多事情。有时我们在发布项目时可能会有一些我们定制化的处理,现有的插件都无法满足我们的需求,这时你可以自己开发一个插件来使用,下面我们用一个实际需求的案例来介绍如何开发自己的maven插件。原创 2024-02-03 06:00:00 · 1793 阅读 · 1 评论 -
在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包
上一节中我们分享了Sonatype Nexus私有库的搭建过程,今天给大家分享,如果将我们自己开发的jar文件部署到自己的私有库中。1、在使用maven发布jar包时,最重要的是要配置本地maven的settings.xml文件,一定要注意这里,不要忘了。2、在要求比较严的公司,可以给不同的同事创建不用的nexus用户,而且也可以建立不同类型的仓库,比如release仓库需要严格的测试,而snapshots仓库用于新功能尝试。原创 2024-02-02 07:30:00 · 2353 阅读 · 0 评论 -
在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(一)搭建Sonatype Nexus私有库
我们在使用maven时,在pom.xml文件里面有个repositories的配置,这个配置可以来指定我们的依赖包下载的地址,我们常用的比如有阿里云镜像、华为云镜像地址等。这些地址能给我们提供更好的网络访问,但是当有时我们也需要自己的镜像库,比如我们自己开发的一个工具库只提供给公司内部使用,而又不想共享到公网上去,那这时就需要我们自己搭建一套maven的私有库。或者我们的开发环境下是不能上外网,只能链接公司的内网,这种情况也就需要我们的私有库。今天给大家分享如何大家自己的maven私有库。原创 2024-02-01 06:15:00 · 2906 阅读 · 1 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(六)之使用allatori对Java代码混淆
前面的章节中,我们介绍了Java程序在Windows下的各种部署和运行方式。在这个系列中,最后再给大家分享,如何把我们的代码打包混淆,因为JVM的架构体系设计,Java程序在很长一段时间不能像c/c++那样直接编译成本地二进制包。因此对Java程序中的代码保护基本上都采取混淆或者加密处理,这样在一定程度上能加大反编译的难度。我的理解就是把我们所编写的代码的组织结构打乱,然后再重新编排。通过对代码混淆可以来保护我们代码中的某些不想被公开的核心逻辑,增大反编译的难度。在某些非常时候,也是保护我们权益的一种方式。原创 2024-01-31 06:00:00 · 1378 阅读 · 0 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(五)使用springboot开发javafx并打包exe/dmg/pkg安装包
在前面的章节中,介绍了怎么把一个springboot的程序打包成EXE文件并制作成Windows系统服务,还介绍了怎么制作Windows下一键安装包,今天给大家介绍一下如何把Javafx的项目打包成exe或者dmg安装包1、如果你的jdk版本还是在1.8,那么在Windows下打包Inno Setup建议使用Inno Setup 5,最新的Inno Setup 6会有点问题。原创 2024-01-30 05:45:00 · 1526 阅读 · 0 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(四)使用Inno Setup制作一键安装包installer
在前面的章节中,我们完成了springboot程序的打包以及Windows下制作系统服务的操作,但是我们最终打包的文件还是zip格式,安装和卸载需要点击bat脚本文件。这一节我给大家分享一个打包工具Inno Setup,这个工具可以把我们的程序制作成一个EXE的安装包,用户点击运行,直接傻瓜式的点击操作。因为要制作Windows的本地安装包,需要依赖到平台的特性,所以这个构建步骤只能在Windows下进行。下面我们一步一步来实现这个过程。原创 2024-01-29 06:15:00 · 2215 阅读 · 1 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(三)之springboot+nssm生成系统服务
在上一节中我们使用commons-daemon来制作Windows服务,但是配置稍显复杂,而且对代码也有要求。今天我给大家分享另外一个工具来将Java程序制作成Windows系统服务,这个工具就是nssm,这里附上官方链接1、使用nssm来制作服务相比commons-daemon来说简便的多,而且运行速度也比commons-daemon高。2、nssm也可以使用jar来制作服务,大家可以自行研究官网的文档,我们这里使用exe文件方便统一文件类型。原创 2024-01-28 07:30:00 · 1620 阅读 · 0 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(二)之springboot+Apache commons-daemon生成系统服务
在上一节中我们介绍了怎么把springboot项目打包成exe文件,并绑定了自己的jdk运行时,但是我们在运行这个项目时,需要启动控制台,如果不小心操作了控制台,我们的程序也会收到影响,这是一个瑕疵。下面我们将来优化这个过程,这一节中主要介绍使用Apachecommons-daemon来生成系统服务,让我们的springboot项目在后台运行。Apachecommons-daemon的相关资料,大家可以直接去官方网站查找,这个应用很广,我们最熟悉的Tomcat就是使用Apache。原创 2024-01-27 02:11:08 · 1507 阅读 · 1 评论 -
使用maven将Java程序打包成exe文件并制作成Windows系统服务(一)之springboot打包exe并绑定jdk
虽然Java程序最好的运行环境在Linux下,但是基于一些客户的硬件环境,我们有的应用也只能部署在Windows下。在JVM的架构模式下,Java程序虽然能跨平台运行,但是操作起来还是很麻烦,要先安装jdk,然后配置各种系统变量等。如果客户是一个技术小白,其实这通操作还是很不友好,那能否把我们的程序做成一个技术包,用户只需要点击就能运行呢?下面我将给大家分享利用maven来打包Windows环境下Java程序的各种姿势。原创 2024-01-26 13:15:06 · 2537 阅读 · 3 评论