Maven对Springboot项目配置文件、依赖分离打包

Springboot项目配置文件、依赖分离打包(一)

使用maven-assembly-plugin进行配置分离

assembly.xml配置文件


<assembly>
    
    
    <id>${name}id>

    
    <formats>
        <format>tar.gzformat>
        <format>zipformat>
    formats>

    <includeBaseDirectory>trueincludeBaseDirectory>

    <fileSets>
        
        <fileSet>
            <directory>src/main/resources/directory>
            <outputDirectory>configoutputDirectory>
            <fileMode>0644fileMode>
            <includes>
                <include>application.ymlinclude>
                <include>*.xmlinclude>
                <include>*.propertiesinclude>
            includes>
        fileSet>
        
        <fileSet>
            <directory>${basedir}/src/bindirectory>
            <outputDirectory>binoutputDirectory>
            <fileMode>0755fileMode>
            <includes>
                <include>**.shinclude>
                <include>**.batinclude>
            includes>
        fileSet>
    fileSets>

    <dependencySets>
        <dependencySet>
            
            <outputDirectory>liboutputDirectory>
            <scope>runtimescope>
            <fileMode>0755fileMode>
            <excludes>
                <exclude>${project.groupId}:${project.artifactId}exclude>
            excludes>
        dependencySet>
        <dependencySet>
            <outputDirectory>bootoutputDirectory>
            <fileMode>0755fileMode>
            <includes>
                <include>${project.groupId}:${project.artifactId}include>
            includes>
        dependencySet>
    dependencySets>
assembly>

Pom.xml文件配置

pom文件中build属性的配置

<build>
    
    <finalName>messagefinalName>
    <plugins>
        
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <configuration>
                <layout>ZIPlayout>
                <includes>
                    
                    <include>
                        <groupId>non-existsgroupId>
                        <artifactId>non-existsartifactId>
                    include>
                includes>
            configuration>
        plugin>

        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-dependency-pluginartifactId>
            <version>3.1.0version>
            <executions>
                <execution>
                    <phase>prepare-packagephase>
                    <goals>
                        <goal>copy-dependenciesgoal>
                    goals>
                    <configuration>
                        <outputDirectory>target/liboutputDirectory>
                        <overWriteReleases>falseoverWriteReleases>
                        <overWriteSnapshots>falseoverWriteSnapshots>
                        <overWriteIfNewer>trueoverWriteIfNewer>
                        <includeScope>compileincludeScope>
                    configuration>
                execution>
            executions>
        plugin>

        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <configuration>
                
                <source>${java.version}source>
                <target>${java.version}target>
            configuration>
        plugin>

        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-surefire-pluginartifactId>
            <version>2.22.1version>
            <configuration>
                <skipTests>trueskipTests>
            configuration>
        plugin>

        
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-jar-pluginartifactId>
            <version>3.1.0version>
            <configuration>
                <excludes>
                    
                    
                    <exclude>*.xmlexclude>
                    <exclude>*.propertiesexclude>
                    <exclude>*.ymlexclude>
                excludes>
                <archive>
                    <manifest>
                        
                        <mainClass>xx.xxx.ApplicationmainClass>
                        
                        <classpathPrefix>../lib/classpathPrefix>
                        <addClasspath>trueaddClasspath>
                    manifest>
                    
                    <manifestEntries>
                        <Class-Path>../config/Class-Path>
                    manifestEntries>
                archive>
            configuration>
        plugin>

        
        <plugin>
            <artifactId>maven-assembly-pluginartifactId>
            <version>3.1.0version>
            <configuration>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xmldescriptor>
                descriptors>
            configuration>
            <executions>
                <execution>
                    <id>make-assemblyid>
                    <phase>packagephase>
                    <goals>
                        <goal>singlegoal>
                    goals>
                execution>
            executions>
        plugin>
    plugins>
build>

运行

1.直接运行 java -jar xxxx.jar即可

2.编写shell/bash脚本

在bin目录下编写脚本文件如下:

shell

#! /bin/sh

HOME = '/opt/xxx/boot'
JAR_HOME = 'xxx.jar'

cd $HOME
nohup java -jar $JAR_HOME

bash

@echo off
rem ======================================================================
rem windows startup script
rem
rem ======================================================================
rem startup jar

java -jar ../boot/xxx.jar

pause

项目目录如下

Maven对Springboot项目配置文件、依赖分离打包_第1张图片

你可能感兴趣的:(------Java)