Maven自定义打包脚本

利用Maven脚本,实现以下需求:

  • 将第三方lib单独打包
  • 将脚本单独打包
  • 将执行jar单独打包
  • 将配置文件单独打包
  • 自动关闭和启动进程

assembly目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>

<dependencySets>
<dependencySet>
<!--不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录-->
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>

<fileSets>
<!-- 把项目脚本文件,打包进zip文件的根目录 -->
<fileSet>
<directory>${project.basedir}/bin</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.sh</include>
</includes>
</fileSet>

<!-- 把配置文件,打包进zip文件的config目录 -->
<fileSet>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>**/*</include>
<include>*.xml</include>
<include>*.properties</include>
<include>*.yml</include>
<include>*.key</include>
</includes>
</fileSet>

<!-- 把jar,打进zip文件的根目录 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>

bin目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

set -x

cat xx.pid | xargs kill -9

sleep 1

nohup java -jar xx.jar >nohup.log 2>&1 &

pid=$!

echo $pid > xx.pid

tail -200f nohup.info
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- The configuration of maven-assembly-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<!-- The configuration of the plugin -->
<configuration>
<descriptors>
<!-- 配置 assembly 的路径 -->
<descriptor>assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
------ 本文结束------

本文标题:Maven自定义打包脚本

文章作者:Perkins

发布时间:2019年08月23日

原始链接:https://perkins4j2.github.io/posts/26061/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。