• Springboot 打jar包实现分离依赖lib和配置


    前言

    为了业务需要配置文件和jar分离,便于使用者修改配置信息,在网上找了很久,最终找到一个简单有效的方法。

    操作步骤

    打开project工程的pom.xml文件,将下列配置粘贴到pom文件中:

        <properties>
            <java.version>1.8</java.version>
            <!--在此配置打包输出的路径-->
            <directory>d:/out/</directory>
        </properties>
       <build>
            <plugins>
                <!--上线部署 JAR启动分离依赖lib和配置-->
                            <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-resources-plugin</artifactId>
                                <version>3.1.0</version>
                            </plugin>
                            <plugin>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-maven-plugin</artifactId>
                            </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <!--不打包资源文件-->
                        <excludes>
                            <exclude>*.**</exclude>
                        </excludes>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <!--jar包不包含唯一版本标识-->
                                <useUniqueVersions>false</useUniqueVersions>
                                <!--程序启动类application.java的路径-->
                                <mainClass>com.sy.xx.Application</mainClass>
                            </manifest>
                            <!-- 指定配置文件目录,这样jar运行时会去找到同目录下的config文件夹下查找 -->
                            <manifestEntries>
                                <Class-Path>config/</Class-Path>
                            </manifestEntries>
                        </archive>
                        <outputDirectory>${directory}</outputDirectory>
                    </configuration>
                </plugin>
    
                <!--拷贝依赖 copy-dependencies-->
                <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>
                                    ${directory}/lib/
                                </outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    
                <!--拷贝资源文件 copy-resources-->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <resources>
                                    <resource>
                                        <directory>src/main/resources</directory>
                                        <!-- 指定参与构建的resoures-->
                                        <includes>
                                            <include>*.**</include>
                                        </includes>
                                    </resource>
                                </resources>
                                <outputDirectory>${directory}/config</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    接下来使用maven package打包即可:

     打包之后的样子:

     这样就完成了配置文件以及lib包和jar的分离了,并且jar在运行的时候会默认去读取config文件夹中的配置,修改起来非常方便。

  • 相关阅读:
    linux下的make命令
    安装pytorch
    CondaError: Downloaded bytes did not match Content-Length
    cv2.VideoCapture(0)
    cv2.imread(),cv2.imshow(),cv2.imwrite()
    unsqueeze()和squeeze()
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module
    Can't connect to MySQL server on '127.0.0.1' (10061)
    ping ip
    _vimrc配置
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/16009704.html
Copyright © 2020-2023  润新知