JAVA项目使用maven插件和docker实现自动打包部署运行

本文介绍如何利用Maven的maven-assembly-plugin插件和Docker实现项目的自动打包、部署及运行。通过配置Maven插件和Dockerfile,能够一键生成可直接部署的压缩包,并通过Docker容器化运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA项目使用maven插件和docker实现自动打包部署运行

此文章使用maven的打包插件maven-assembly-plugin以及docker的打包功能,实现自动打包部署并运行的功能。

其中使用到的工具如下:

  • maven 系统安装并配置完成maven
  • intellij idea 确认安装docker插件并配置好docker连接,确认安装maven插件,并配置好相关配置
  • docker 使用服务器安装docker服务,非windows

工程搭建

创建工程如下图所示:

在这里插入图片描述

创建工程为maven工程,工程主结构包括:

  • assembly文件夹: 包含assembly.xml配置文件,其中包含打包的配置文件
  • bin文件夹:包含启动运行脚本,start.sh脚本请自行搜索
  • java目录:包含java代码

pom文件配置

    <dependencies>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-client</artifactId>
            <version>4.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution><!-- 配置执行器 -->
                        <id>make-assembly</id>
                        <phase>package</phase><!-- 绑定到package生命周期阶段上 -->
                        <goals>
                            <goal>single</goal><!-- 只运行一次 -->
                        </goals>
                        <configuration>
                            <finalName>${project.name}</finalName>
                            <descriptor>src/main/assembly/assembly.xml</descriptor><!--配置描述文件路径-->
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

添加了一个curator的包用做测试,主要打包配置在中,打包后的文件名为**${project.name},配置文件路径为src/main/assembly/assembly.xml**。

打包配置文件

<assembly>
    <id></id>
    <formats>
        <format>tar.gz</format><!--打包的文件格式,也可以有:war zip-->
    </formats>
    <!--tar.gz压缩包下是否生成和项目名相同的根目录-->
    <includeBaseDirectory>true</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <!--是否把本项目添加到依赖文件夹下-->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <!--将scope为runtime的依赖包打包-->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>src/main/bin</directory>
            <outputDirectory>/</outputDirectory>
            <!-- 将start.sh脚本放在打包后的根目录下-->
        </fileSet>
        <fileSet>
            <directory>target/classes</directory>
            <outputDirectory>classes</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

配置文件如上图所示,注意将start.sh脚本放在打包后的根目录下。

打包结果展示

运行mvn clean package查看打包结果

在这里插入图片描述
如上图所示,在target文件夹中打包出.tar.gz包,打开压缩包结构:
在这里插入图片描述

通过docker远程部署

如何在intellij idea中配置docker并使用tls连接的方法,将在另外的文章中详述,这里假设docker相关配置都已配置完成并测试连接正常。

编写docker文件如下:

FROM ***

MAINTAINER dreamxiaohai dreamxiaohai@gmail.com

RUN apt-get update && apt-get install openjdk-8-jre -y

ADD target/testPackageAndDocker.tar.gz /usr/local/

RUN chmod +x /usr/local/testPackageAndDocker/start.sh

WORKDIR /usr/local/testPackageAndDocker/

CMD ./start.sh start && tail -f /tmp/result.log

配置intellij idea运行命令
在这里插入图片描述
配置完成后,点击运行,可看到以下结果,证明远程运行无误在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值