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

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

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

其中使用到的工具如下:

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

工程搭建

创建工程如下图所示:

JAVA项目使用maven插件和docker实现自动打包部署运行_第1张图片

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

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

pom文件配置

    <dependencies>
        <dependency>
            <groupId>org.apache.curatorgroupId>
            <artifactId>curator-clientartifactId>
            <version>4.0.0version>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-assembly-pluginartifactId>
                <executions>
                    <execution>
                        <id>make-assemblyid>
                        <phase>packagephase>
                        <goals>
                            <goal>singlegoal>
                        goals>
                        <configuration>
                            <finalName>${project.name}finalName>
                            <descriptor>src/main/assembly/assembly.xmldescriptor>
                        configuration>
                    execution>
                executions>
            plugin>
        plugins>
    build>

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

打包配置文件

<assembly>
    <id>id>
    <formats>
        <format>tar.gzformat>
    formats>
    
    <includeBaseDirectory>trueincludeBaseDirectory>
    <dependencySets>
        <dependencySet>
            
            <useProjectArtifact>falseuseProjectArtifact>
            <outputDirectory>liboutputDirectory>
            
            <scope>runtimescope>
        dependencySet>
    dependencySets>
    <fileSets>
        <fileSet>
            <directory>src/main/bindirectory>
            <outputDirectory>/outputDirectory>
            
        fileSet>
        <fileSet>
            <directory>target/classesdirectory>
            <outputDirectory>classesoutputDirectory>
        fileSet>
    fileSets>
assembly>

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

打包结果展示

运行mvn clean package查看打包结果

JAVA项目使用maven插件和docker实现自动打包部署运行_第2张图片
如上图所示,在target文件夹中打包出.tar.gz包,打开压缩包结构:
在这里插入图片描述

通过docker远程部署

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

编写docker文件如下:

FROM ***

MAINTAINER dreamxiaohai [email protected]

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运行命令
JAVA项目使用maven插件和docker实现自动打包部署运行_第3张图片
配置完成后,点击运行,可看到以下结果,证明远程运行无误JAVA项目使用maven插件和docker实现自动打包部署运行_第4张图片

你可能感兴趣的:(自动部署)