欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven打包jar(lib目錄分離和不分離)的兩種方式

 更新時間:2024年07月30日 09:56:03   作者:成為大佬先禿頭  
打包jar的方式有很多種,本文主要介紹了Maven打包jar的兩種方式,包含lib目錄分離和不分離,具有一定的參考價值,感興趣的可以了解一下

前言

Jar文件(Java歸檔,英語:Java Archive)是一種軟件包文件格式,以流行的 ZIP 文件格式為基礎(chǔ)。不僅用于壓縮和發(fā)布,還用于部署和封裝庫、組件和插件程序以便開發(fā)Java平臺應(yīng)用軟件或庫。

背景需求

打包jar的方式有很多種:比如通過jar命令去打包,包括現(xiàn)在市面上常用的java開發(fā)工具idea、eclipse等,都集成了打包方法,只需配置一下即可(有需要自行上網(wǎng)了解),后來學(xué)習(xí)web開發(fā)接觸maven,又開始用maven進行打包,只需install一下很方便,下面將網(wǎng)上五花八門(看的頭暈)的maven配置結(jié)合我實際開發(fā)需求介紹兩種打包方式

Maven打包jar與lib依賴包不分離

打包插件用的是spring-boot-maven-plugin,這個插件會把項目中的代碼和相關(guān)依賴一起打包成一個jar包,我們只需哪到這個jar包發(fā)布到服務(wù)器上即可,很方便。但是jar包里面包含特別多的其他依賴,所以每次更新服務(wù)器jar包,特別費時間。

	<build>
		<finalName>${project.artifactId}</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!--指定jar程序入口-->
					<mainClass>com.baidu.test.App</mainClass>
				</configuration>
			</plugin>
		</plugins>
	</build>

配置好后,可以通過mvn install命令或者找到開發(fā)軟件上的maven工作欄找到你要編譯的項目點擊install即可,然后找到你項目目錄找到target文件夾打開,里面就有你剛剛打包好的jar包,50多M,很大。

在這里插入圖片描述

我們可以通過壓縮工具查看jar包的文件目錄,找到BOOT-INF下lib目錄,可以看到里面有很多依賴包,然后其他的文件就是一些class文件和配置文件

在這里插入圖片描述

Maven打包jar與lib依賴包分離

為了解決jar包太打不方便發(fā)布的問題,就把jar包中的依賴和jar包分離開,在發(fā)布時如果依賴包沒啥變動,就只需要發(fā)布jar包即可,這樣發(fā)布速度便能優(yōu)化不少

<build>
		<finalName>${project.artifactId}</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
						    <!-- 是否要把第三方j(luò)ar加入到類構(gòu)建路徑 -->
							<addClasspath>true</addClasspath>
							<!-- 外部依賴jar包的最終位置 -->
							<classpathPrefix>lib/</classpathPrefix>
							<!--指定jar程序入口-->
							<mainClass>com.baidu.test.App</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			<!--拷貝依賴到j(luò)ar外面的lib目錄-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<!-- 拷貝項目依賴包到lib/目錄下 -->
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
							<overWriteReleases>false</overWriteReleases>
							<overWriteSnapshots>false</overWriteSnapshots>
							<overWriteIfNewer>true</overWriteIfNewer>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

配置好后,可以通過mvn install命令或者找到開發(fā)軟件上的maven工作欄找到你要編譯的項目點擊install即可,然后找到你項目目錄找到target文件夾打開,里面就有你剛剛打包好的jar包和lib文件,此時jar包只有10幾kb,特別小,上傳速度更快了

在這里插入圖片描述

我們再通過壓縮工具查看jar包的文件目錄,BOOT-INF目錄已經(jīng)沒有了,就是一些class文件和配置文件

在這里插入圖片描述

到此這篇關(guān)于Maven打包jar(lib目錄分離和不分離)的文章就介紹到這了,更多相關(guān)Maven打包jar內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Java設(shè)計模式之單例模式詳解

    Java設(shè)計模式之單例模式詳解

    這篇文章主要為大家詳細介紹了Java設(shè)計模式之單例模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Mybatis?TypeHandler接口及繼承關(guān)系示例解析

    Mybatis?TypeHandler接口及繼承關(guān)系示例解析

    這篇文章主要為大家介紹了Mybatis?TypeHandler接口及繼承關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Springboot Thymeleaf字符串對象實例解析

    Springboot Thymeleaf字符串對象實例解析

    這篇文章主要介紹了Springboot Thymeleaf字符串對象實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2007-09-09
  • java——多線程基礎(chǔ)

    java——多線程基礎(chǔ)

    Java多線程實現(xiàn)方式有兩種,第一種是繼承Thread類,第二種是實現(xiàn)Runnable接口,兩種有很多差異,下面跟著本文一起學(xué)習(xí)吧,希望能給你帶來幫助
    2021-07-07
  • SpringCache緩存自定義配置的實現(xiàn)

    SpringCache緩存自定義配置的實現(xiàn)

    本文主要介紹了SpringCache緩存自定義配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    PageHelper是mybatis框架的一個插件,用于支持在mybatis執(zhí)行分頁操作。本文將通過SpringBoot整合PageHelper實現(xiàn)分頁查詢功能,需要的可以參考一下
    2022-03-03
  • 5分鐘快速搭建SpringBoot3?+?MyBatis-Plus工程/項目的實現(xiàn)示例

    5分鐘快速搭建SpringBoot3?+?MyBatis-Plus工程/項目的實現(xiàn)示例

    本文主要介紹了使用IntelliJ?IDEA創(chuàng)建Spring?Boot工程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • MVC AOP面向切面編程簡單介紹及實例

    MVC AOP面向切面編程簡單介紹及實例

    這篇文章主要介紹了MVC AOP面向切面編程簡單介紹及實例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • springboot3.X 無法解析parameter參數(shù)問題分析

    springboot3.X 無法解析parameter參數(shù)問題分析

    本文介紹了Spring Boot 3.2.1版本中調(diào)用接口時出現(xiàn)的參數(shù)解析問題,該錯誤是由Spring新版本加強的錯誤校驗和報錯提示導(dǎo)致的,在Spring 6.1之后,官方要求URL中的傳參必須使用`@PathVariable`聲明用于接收的變量,而不能省略`@RequestParam`注解,感興趣的朋友一起看看吧
    2025-03-03
  • Java利用Jsoup解析和操作HTML的技術(shù)指南

    Java利用Jsoup解析和操作HTML的技術(shù)指南

    在現(xiàn)代 Java 開發(fā)中,處理 HTML 數(shù)據(jù)是一項常見需求,無論是抓取網(wǎng)頁數(shù)據(jù)、解析 HTML 文檔,還是操作 DOM 樹,Jsoup 都是一個強大的工具,本文將介紹 Jsoup 的基本功能,并通過多個詳細的代碼示例展示如何使用它解析和操作 HTML,需要的朋友可以參考下
    2025-03-03

最新評論