maven篇6:maven打包

简介: maven篇6:maven打包

使用maven对项目进行打包,可用以下三种plugin

maveb-jar-plugin : maven默认打包插件,用来创建project jar

maven-shade-plugin : 用来打可执行包(executable jar)

maven-assembly-plugin : 支持定制化打包方式

下面简单介绍以下maven-assembly-plugin

指定打包文件src/main/assembly/assembly.xml,在该配置文件内指定打包操作。

 [...]

 

   [...]

 

   

       maven-assembly-plugin

       3.0.0

     

       

           src/main/assembly/assembly.xml

       

     

       [...]

配置文件参数解释说明

1、id

release

1

id标识符,添加到生成文件名称的后缀符。如果指定id的话,目标文件名则是 a r t i f a c t I d − {artifactId}-artifactId−{id}.tar.gz

2、formats

maven-assembly-plugin 支持的打包格式有zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、jar、dir、war,可以同时指定多个打包格式

   tar.gz

   dir

3、fileSets

管理一组文件的存放位置,核心元素如下表所示:

 

   

       bin/**

   

     0755

 

 

   

       /conf/**

       logs

   

 

 

 

4、files

可以指定目的文件名到指定目录,其他和 fileSets 相同,核心元素如下表所示。

具体的标签类型看官方文档,下面介绍几个常用的元素

Apache Maven Assembly Plugin – Assembly

工程目录结构示例

参考

maven assembly打包插件详解_隐0士的博客-CSDN博客_assembly打包

打包后可以通过脚本启动,附(参考)脚本

win

@echo off
if ""%1"" == ""-p"" goto doSetPort
if ""%1"" == """" goto doStart
 
echo Usage:  %0 [OPTIONS]
echo   -p [port]          Server port (default: 8899)
goto end
 
:doSetPort
shift
set PORT=%1
 
:doStart
set DDCFGDIR=%~dp0%..\conf
set CLASSPATH=%DDCFGDIR%
SET CLASSPATH=%~dp0..\lib\*;%CLASSPATH%
set CONSOLE_MAIN=com.test.ConsoleStart
echo on
if ""%PORT%"" == """" set PORT=8899
java  -cp "%CLASSPATH%" %CONSOLE_MAIN% %PORT%
 
:end

linux

#!/bin/bash
 
show_usage() {
    echo "Usage: $0 [OPTIONS]"
    echo "  -p <port>          Server port (default: 8899)"
    exit 1
}
 
if [ $# -ne 0 ] && [ $# -ne 2 ]; then
  show_usage
fi
 
port="8899"
 
if [ $# -eq 2 ]; then
  while getopts p: arg 
  do    case "$arg" in
          p) port="$OPTARG";;
          [?]) show_usage;;
        esac
  done
fi
 
if [ "$port" = "" ]; then
  show_usage
fi
 
cd `dirname $0`
cd ..
DEPLOY_DIR=`pwd`
LIB_DIR=${DEPLOY_DIR}/lib/*
CONSOLE_MAIN=com.testConsoleStart
 
java -classpath ${LIB_DIR}:. ${CONSOLE_MAIN} $port


相关文章
|
12天前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
14天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
30 1
|
30天前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
21 6
|
30天前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
469 1
|
1月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
93 4
|
5月前
|
Java 测试技术 Maven
Maven打包使用多线程加速构建过程
Maven打包使用多线程加速构建过程
798 0
|
1月前
|
Java Maven
用graalvm将maven项目打包成可执行文件
本文介绍了如何使用GraalVM将Maven项目打包成可执行文件,包括引入依赖和插件、编写代码、执行打包命令以及运行查看结果的完整过程。
103 0
用graalvm将maven项目打包成可执行文件
|
1月前
|
Java Maven
maven打包出现没有主类的原因,详细分析并解决
本文分析了使用Maven打包Java应用时找不到或无法加载主类的问题,通常是由于未配置主类或打包时未包含依赖,并通过添加Maven插件解决了依赖问题,同时指出了JavaFX应用可能遇到的运行时组件缺失的错误。
112 0
maven打包出现没有主类的原因,详细分析并解决
|
6月前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
116 1
|
28天前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
290 0