pom文件打包配置

这篇具有很好参考价值的文章主要介绍了pom文件打包配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 可用 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

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

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

lib:放第三方JAR

resources:存配置文件文章来源地址https://www.toymoban.com/news/detail-428642.html

<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>

到了这里,关于pom文件打包配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot 实践(2)MyEclipse2019创建项目修改pom文件,加载springboot 及swagger-ui jar包

    MyEclipse2019创建工程之后,需要添加Springboot启动函数、添加application.yml配置文件、修改pom文件添加项目使用的jar包。 添加Springboot启动函数 创建文件存储路径 (1)右键单击“src/main/java”文件夹,弹出对话框输入路径名称“com.SJL.action.app”,点击“finish”按钮,完成路径创建。

    2024年02月12日
    浏览(32)
  • Springboot项目打包war配置详解

    2024年02月15日
    浏览(54)
  • 在pom文件中引入本地jar包,并打包

    在开发过程这如果需要引入一些,MAVEN仓库中没有的JAR包,或者引入一些别人写的一些工具类jar包。 (1)在项目下创建lib目录,将需要引入的jar包复制进去 (2)如果你想在代码中使用你需要选择jar包 右击\\\"Add as Library.…\\\",把jar改jar作为一个依赖。 点击之后,这个jar包会有一个下拉

    2024年02月07日
    浏览(31)
  • Maven的三种项目打包方式——pom,jar,war的区别

    记录一次项目启动失败,发现Could not resolve dependencies for project的错误,原因是我的子模块的打包方式是pom 是怎么发现,因为我是从父模块打包的,但是发现我这个子模块找不到,我发现父子模块依赖关系也没错啊,我就单独打包这个子模块,结果没有错误,但是没生成targe

    2024年02月12日
    浏览(33)
  • 项目打包docker镜像,并指定运行的配置文件

    新建dockerfile文件,添加入以下内容 1.修改dockerfile中的配置,与对应文件和jar包的目录保持一致。如果已经有镜像包可忽略打包步骤,直接执行命令启动   2.服务启动的端口在application.properties文件中已配置,后续可根据实际情况修改 3.切换到文件所在目录; cd /home/zj/ 4.执行命

    2024年02月16日
    浏览(26)
  • springboot项目中引入本地依赖jar包,并打包到lib文件夹中

    描述:下载了第三方相关jar包后,项目中引入本地jar,测试环境正常,打包线上报错提示为找到该jar 原因:应该在/WEB-INF/lib/xxx.jar,被打包到此目录:/WEB-INF/classes/lib/xxx.jar 引入jar包后,在此pom.xml文件中里面添加依赖坐标,即添加中内容 在pom的 build/ build标签中还需进行如下修

    2024年02月07日
    浏览(40)
  • springboot项目中引入本地依赖jar包,如何打包到lib文件夹中

    前言: 工作中,碰到过springboot框架构建的java web项目,需要集成第三方推送功能,于是使用到了小米推送服务,下载了相关jar包。项目中引入本地jar,问题不大,编写完代码后,通过测试类测试,也没问题。然后就准备打包部署到开发服上。由于项目是通过tomcat部署的,所以

    2024年02月11日
    浏览(44)
  • SpringBoot中pom.xml配置详解

    前言 在Spring Boot开发中,配置文件是非常重要的一部分,而yml文件作为一种常用的配置文件格式,被广泛应用于Spring Boot项目中。Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。本文将介绍Spring Boot读取yml文件的主要方式

    2024年02月07日
    浏览(26)
  • 【java】【springboot】【idea】springboot项目pom.xml 灰色下划线

    解决方案: 这里我们找到了原因,就是因为选择了Ignored Files导致pom.xml文件被设置在maven忽略文件清单中,所以我们将打勾的选项取消,点击Apply,然后点击OK

    2024年02月11日
    浏览(39)
  • 【Maven教程】(三)基础使用篇:入门使用指南——POM编写、业务代码、测试代码、打包与运行、使用Archetype生成项目骨架~

    到目前为止,已经大概了解并安装好了Maven环境, 现在,我们开始创建一个最简单的 Hello World 项目。如果你是初次接触 Maven, 建议按照本文的内容 一步步地编写代码并执行, 其中可能你会碰到一些概念暂时难以理解,但不用着急,记下这些疑难点,我在后续文章中会逐一进行

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包