使用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