zoukankan      html  css  js  c++  java
  • ******可用 SpringBoot 项目打包分开lib,配置和资源文件


    spring-boot多模块打包后,无法找到其他模块中的类
    https://blog.csdn.net/Can96/article/details/96172172


    关于SpringBoot项目打包没有把依赖的jar包一起打包的解决办法
    https://www.cnblogs.com/lgjava/p/11548764.html

    SpringBoot创建多模块项目和所遇到的问题
    https://blog.csdn.net/qq_37979188/article/details/96975954


    ******可用 SpringBoot 项目打包分开lib,配置和资源文件
    https://blog.csdn.net/qq_30220585/article/details/90201643

    _____________________________________________________________________________________________________________________________________________________________________________________

    本文链接:https://blog.csdn.net/tealala/article/details/90411292
    Spring Boot 的Maven插件(Spring Boot Maven plugin) 能够以Maven的方式为应用提供Spring Boot 的支持,即为Spring Boot应用提供了执行Maven操作的可能

    Spring Boot Maven Plugin能够将Spring Boot应用打包为可执行的jar或war文件,执行springboot应用

    1、安装Spring Boot Maven Plugin插件的条件:

    (1)如果POM是继承spring-boot-starter-parent的话,只需要指定以下内容就行:

    <properties>
    <java.version>1.8</java.version>
    <start-class>com.myproject.PortalutilApplication</start-class>
    </properties>
    (2)如果POM不是继承spring-boot-starter-parent的话,就需要安装spring-boot-maven-plugin插件,如下:

    <build>
    <finalName>projectByMyself</finalName>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.0.1.RELEASE</version>
    <configuration>
    <mainClass>${start-class}</mainClass>
    <layout>ZIP</layout>
    </configuration>
    <executions>
    <execution>
    <goals>
    <goal>repackage</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>
    <finalName></finalName>标签的作用:

    1、设置了就会按照自己设定的名字作为包名

    2、如果没有设置,打包后的包名为:artifactId与version拼接的结果

    如下图:

    ${start-class} 其实就是项目的启动类,例如:com.myproject.PortalutilApplication

    layout属性的值可以如下:

    1、JAR,即通常的可执行jar

    Main-Class: org.springframework.boot.loader.JarLauncher

    2、WAR,即通常的可执行war,需要的servlet容器依赖位于WEB-INF/lib-provided

    Main-Class: org.springframework.boot.loader.warLauncher

    3、ZIP,即DIR,类似于JAR

    Main-Class: org.springframework.boot.loader.PropertiesLauncher

    4、MODULE,将所有的依赖库打包(scope为provided的除外),但是不打包Spring Boot的任何Launcher

    5、NONE,将所有的依赖库打包,但是不打包Spring Boot的任何Launcher
    ————————————————
    版权声明:本文为CSDN博主「tealala」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/tealala/article/details/90411292

    ____________________________________________________________________________________________________________________________________________________________________________________

    SpringBoot 项目打包分开lib,配置和资源文件

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_30220585/article/details/90201643

    springboot maven打包分离 lib resource 配置资源文件
    注:
    使用maven命令打包,不同的IDE可以一样的操作
    在pom文件中,设置两个属性

    <properties>
    		<output.dependence.file.path>lib/</output.dependence.file.path>
    		<output.resource.file.path>resource/</output.resource.file.path>
    </properties>
    	设置build节点。这样在pom文件目录执行mvn clean package命令,就能在target文件夹输出打包结果了:
    	依赖的jar会输出到output.dependence.file.path指定的文件夹,配置文件输出到output.resource.file.path 指定的文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    springboot基于spring-boot-maven-plugin打包时会把所有依赖的jar,yml,properties,xml打到一个jar中,如果需要修改配置文件更换jar包非常不方便,能不能打成以下结构?

    通过pom文件使用mvn package 一建打包

    lib:放第三方JAR

    resources:存配置文件

    <plugins>
    	 <!-- 打JAR包,不包含依赖文件;显式剔除配置文件 -->
    	<plugin>
    		<groupId>org.apache.maven.plugins</groupId>
    		<artifactId>maven-jar-plugin</artifactId>
    		<configuration>
    			<!--不打包资源文件,剔除配置文件-->
    			<excludes>
    				<exclude>*.**</exclude>
    				<exclude>*/*.xml</exclude>
    				<exclude>*.properties</exclude>
                   <exclude>*.yml</exclude>
                   <exclude>*/*.properties</exclude>
                   <exclude>*/*.yml</exclude>
    			</excludes>
    			<archive>
    				<manifest>
    					<!--将classpath添加到依赖描述 -->
    					<addClasspath>true</addClasspath>
    					<!--MANIFEST.MF 中 Class-Path 加入前缀-->
    					 <!--lib文件夹内容,需要 maven-dependency-plugin插件补充-->
    					<classpathPrefix>lib/</classpathPrefix>
    					<!--jar包不包含唯一版本标识-->
    					<useUniqueVersions>false</useUniqueVersions>
    					<!--指定入口类-->
    					<mainClass>site.yuyanjia.template.Application</mainClass>
    				</manifest>
    				<manifestEntries>
    					<!--MANIFEST.MF 中 Class-Path 加入资源文件目录,加入自定义路径,多个路径用空格隔开-->
    					<!--此处resources文件夹的内容,需要maven-resources-plugin插件补充上-->
    					<Class-Path>./resources/</Class-Path>
    				</manifestEntries>
    			</archive>
    			<outputDirectory>${project.build.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>
    						${project.build.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>
    							 <includes>
                               <include>*.properties</include>
                               <include>*.yml</include>
                               <include>*/*.properties</include>
                               <include>*/*.properties</include>
                            </includes>
    						</resource>
    					</resources>
    					<outputDirectory>${project.build.directory}/resources</outputDirectory>
    				</configuration>
    			</execution>
    		</executions>
    	</plugin>
    
    	<!--spring boot repackage,依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包-->
    	<plugin>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-maven-plugin</artifactId>
    		<configuration>
    			<!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖-->
    			<includes>
    				<include>
    					<groupId>non-exists</groupId>
    					<artifactId>non-exists</artifactId>
    				</include>
    			</includes>
    			<layout>ZIP</layout>
    			<!--使用外部配置文件,jar包里没有资源文件-->
    			<addResources>true</addResources>
    			<outputDirectory>${project.build.directory}</outputDirectory>
    		</configuration>
    		<executions>
    			<execution>
    				<goals>
    					<goal>repackage</goal>
    				</goals>
    				<configuration>
    					<!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
    					<!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar -->
    					<!--<classifier>run</classifier>-->
    				</configuration>
    			</execution>
    		</executions>
    	</plugin>
    	<!--maven打包时,跳过测试-->
          <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-surefire-plugin</artifactId>
             <configuration>
                <skip>true</skip>
             </configuration>
          </plugin>
    </plugins>




  • 相关阅读:
    Nhibernate对应关系参数介绍
    jquery mobile 登陆后页面验证
    jquery mobile radio,checkbox button 样式设置
    jquery mobile button样式设置
    Ext 三级联动 及附值
    store操作
    Javascript中try finally的细微差别
    mysql entity framework生成画面崩溃
    PYTHON推导生成
    PYTHON修饰器
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/11878399.html
Copyright © 2011-2022 走看看