zoukankan      html  css  js  c++  java
  • Springboot 打jar包分离lib,配置文件正确方式(二)

    Springboot 打jar包分离lib,配置文件正确方式(二)

    背景

    从《Springboot 打jar包分离lib,配置文件正确方式》中,可以达到把配置文件和依赖第三方的jar包分离开,但稍显有点臃肿,今天再次提供一种方式,供大家参考。

    部署环境

    • window 10
    • redhat 6.4
    • 其他版本没有尝试,应该也是可以的

    POM.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    	<groupId>com.elvish</groupId>
    	<artifactId>test</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    
    	<name>test2</name>
    	<description>test project for Spring Boot</description>
    
    	<parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.10.RELEASE</version>
            <relativePath />
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
        </dependencies>
    
    	<build>
    		<finalName>test</finalName>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<configuration>
    					<source>1.8</source>
    					<target>1.8</target>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-dependency-plugin</artifactId>
    				<executions>
    					<execution>
    						<id>copy-dependencies</id>
    						<phase>package</phase>
    						<goals>
    							<goal>copy-dependencies</goal>
    						</goals>
    						<configuration>
    							<outputDirectory>target/lib</outputDirectory>
    							<excludeTransitive>false</excludeTransitive>
    							<stripVersion>false</stripVersion>
    							<includeScope>runtime</includeScope>
    						</configuration>
    					</execution>
    				</executions>
    			</plugin>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    				<configuration>
    					<layout>ZIP</layout>
    					<includes>
    						<include>
    							<groupId>cn.jstars</groupId>
    							<artifactId>datatocloud</artifactId>
    						</include>
    					</includes>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-resources-plugin</artifactId>
    				<configuration>
    					<encoding>UTF-8</encoding>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    				<configuration>
    					<skip>true</skip>
    				</configuration>
    			</plugin>
    		</plugins>
    		<resources>
    			<resource>
    				<filtering>true</filtering>
    				<directory>src/main/resources</directory>
    				<excludes>
    					<exclude>static/**</exclude>
    					<exclude>templates/**</exclude>
    					<exclude>*.yml</exclude>
    					<exclude>*.properties</exclude>
    					<exclude>*.xml</exclude>
    					<exclude>*.txt</exclude>
    				</excludes>
    			</resource>
    		</resources>
    	</build>
    
    </project>
    
    
    

    解释说明

    • maven-dependency-plugin 打出项目依赖的第三方包,放在lib下面
    • spring-boot-maven-plugin springboot打包插件,只保留了项目运行的jar包
    • resources 排除了我们需要外置的文件

    运行方式

    将target下lib包和test.jar(运行包)以及src/main/resources下你需要外置的文件部署至服务器同一目录下,如

    • lib
    • test.jar
    • *.yml
    • *.xml
    • *.properties
    • static
    • templates

     

    最终运行

    java -jar -Dloader.path=.,lib test.jar
    
    linux运行方式: nohup java -jar -Dloader.path=.,lib repository.jar >repository.log 2>&1 &
     
  • 相关阅读:
    SQL server 函数
    SQL server --时间日期函数、类型转换
    SQL server 基础知识
    14.C#的递归
    13.C#的函数练习
    使用bind部署DNS主从服务器
    创建yum仓库
    Linux基础服务搭建综合
    完整的URL是怎样的?
    mysqli_fetch_row()函数返回结果的理解
  • 原文地址:https://www.cnblogs.com/joyny/p/11309666.html
Copyright © 2011-2022 走看看