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

文章来源:https://my.oschina.net/xiaozhutefannao/blog/1932764

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

完美运行,觉得不错的,点赞一波,收藏一波吧

原文地址:https://www.cnblogs.com/luchangjiang/p/10732365.html

时间: 2024-11-06 07:25:11

Springboot 打jar包分离lib,配置文件正确方式的相关文章

jar包与lib包的区别

jar包是编译时使用,假如编译出错代码没问题一定是jar包的问题,lib是运行时使用,比如程序启动后出错了但是编译没有问题,就可能是lib出错了,不会是jar包的问题.jar包与lib包的区别

web工程中添加自建userLibary与将jar包放到lib文件夹下的区别

纯 java项目 使用的本地自己的JRE,那么classLoader在加载jar和class时候是分开的,对于我们自己编写的class,会在 APP_HOME/bin下.导入的jar包或者user library的配置信息会出现在APP_HOME/.classpath文件中,ClassLoader会很智能去加载这些classes和 jar. .classpath文件内容如下: [html] view plaincopy <?xml version="1.0" encoding=&

Springboot打jar 包

1.修改配置文件pom.xml 添加打包形式设置为jar形式 <packaging>jar</packaging> 2.在build标签内添加内容如下 finalname为打包成jar包的名字 configuration内需要设置主类,即入口类,有时候不配置会报错. <build> <finalName>Demo</finalName> <plugins> <plugin> <groupId>org.sprin

Java读取其他jar包里的配置文件

最近要做个东西,需要自己控制数据库的事物,项目封装的框架,实在是提不起去阅读的兴趣, 就想直接去读框架的底层实现里面的数据连接的配置文件(如:Url,port,username,password等), 使用JDBC创建数据连接,拿到Connection后,事物就好办了. 找到在一个A.jar包里面的根目录,有配置文件B.properties,里面有需要的配置. 难点就来了,Properties可以加载src下面的properties文件,直接prop.load(this.getClass().g

01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置

 1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下: 2 EHCache与mybatis集成 EHCache是一种广泛使用java分布式缓存通用缓存,JavaEE中的一个轻量级的容器. EHCache集成是基于ehcache-core,没有任何其它第三方应用程序. 想使用EHCache到她们的应用程序的用户,必须下载EHCache的zip bund

springboot打成jar包涉及到的linux命令

首先要明确 springboot项目打成jar包 查的是java进程不是tomcat进程 直接可以 ps -ef|grep java 就可以查出来 也可以用jbs -l 查询后台进程 还有启动jar包的命令 nohup java -jar  xxx. jar& 这是让程序在后台运行 如果只用 java -jar  xxx. jar 你关闭了xshell或者ctrl c一下就会把服务停止 所以用 nohup java -jar  xxx. jar& 原文地址:https://www.cnbl

Springboot打jar包项目无法访问jsp问题解决

现象:springboot项目集成jsp,本地用idea运行,能正常访问jsp页面,达成jar之后用 java -jar xxx.jar 执行,同样的 路径访问会报404找不到页面 问题原因:pom中springboot 的maven打包插件没有指定正确的版本,需要指定版本为 1.4.2.RELEASE (暂时没想明白是咋回事) 解决方案:pom中标红代码不可少 <plugin> <groupId>org.springframework.boot</groupId> &

springboot运行jar包时候加载指定目录的其他jar支持包

最近发生一个小故障,调试好的项目,发布成jar包后无法找到oracle的驱动,研究了一下解决了.记录一下.写了一个run.sh脚本 #!/bin/bash cd ~ cd app nohup java -Djava.ext.dirs=./lib -Doracle.jdbc.thinLogonCapability=o3 -jar -Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:+UseParallelGC LutraSems

springboot的jar包部署

由于springboot常用war包部署,改为cloud开发模式多端口情况下,部署反而不习惯 毕竟,war包要不要项目名访问都必须放在tomcat的root目录下 而此目录限制只能放置一个项目,并且登录端口限制为tomcat的接口了 因此,jar包部署就成了必然的方式了 1.添加pom设置 静态文件需要访问,所以静态文件webapp下的文件需要重新指定位置,具体配置如下 <resource> <directory>src/main/webapp</directory>