From 4d0901566a6fa511026802553eaaa1696d17c8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Wed, 16 Jun 2021 11:50:09 +0800 Subject: [PATCH] =?UTF-8?q?enhance:=E6=9B=B4=E6=96=B0Maven=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=96=87=E7=AB=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_posts/maven-plugins-in-common-use.md | 104 +++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/source/_posts/maven-plugins-in-common-use.md b/source/_posts/maven-plugins-in-common-use.md index 1511d71..810d111 100644 --- a/source/_posts/maven-plugins-in-common-use.md +++ b/source/_posts/maven-plugins-in-common-use.md @@ -49,6 +49,9 @@ Maven是一个依赖插件执行的框架,每个任务实际上都是由插件 ``` +!!! info "plugins和pluginManagemen标签的区别" + `plugins`和`pluginManagement`两个标签都是`build`标签的直接子元素,而且大部分POM文件中都可以看到它们。但是这两个标签的使用是有区别的,其中`pluginManagement`标签所声明的插件并不会被Maven所使用,它的作用主要是提供对于所有继承了当前POM的子POM中所使用的插件的版本。而`plugins`则是将插件实实在在的应用到Maven生命周期中的。换句话说,如果项目是由多个POM文件组成的,那么可以使用`pluginManagement`来约束各个POM文件中所使用的插件版本;如果只有一个POM文件,那么可以仅使用`plugins`声明插件的使用即可。 + ## maven-compiler-plugin Compiler插件主要用来编译项目源码。在POM中一般用来配置编译所接受的源码版本和编译后能够适应的Java运行时版本。代码版本的配置有两种方式,一种是通过配置项指定,一种是通过配置插件指定。 @@ -323,3 +326,104 @@ Exec插件主要用来支持Maven快速启动Java程序,可以在不打包为J ``` + +## jpackage-maven-plugin + +jpackage插件是一个第三方插件,用来调用JDK 14以后引入的jpackage命令来将经过裁剪生成的最简运行时打包为可在不同平台上直接运行的程序包的。jpackage插件值提供了一个目标可供使用:`jpackage:jpackage`。因为不是所有的JDK都带有jpackage命令,所以在使用jpackage插件的时候,需要配置的内容主要是jpackage所在的JDK目录以及所需要打包的Runtime。 + +以下是一个打包已经使用jlink裁剪好的Runtime的示例。 + +```xml + + + com.github.akman + jpackage-maven-plugin + 0.1.2 + + + $‍{env.JPACKAGE_HOME} + + $‍{project.build.directory}/jpackage + + appname + + IMAGE + + $‍{project.build.directory}/jlink/runtime-image + + 1.0 + + Copyright + + Description + + Vendor + + $‍{project.basedir}/config/jpackage/resources/appname.ico + + appModuleName/appClassName + + --opt + + -Dfile.encoding=UTF-8 -Xms256m -Xmx512m + + + + appname-cli + appModuleName/appClassName + --help + -Xms256m -Xmx512m + 1.0 + $‍{project.basedir}/config/jpackage/resources/appname-cli.ico + true + + + + $‍{project.basedir}/config/jpackage/resources + + + +```