maven本地打包依赖无法引用

Jenkins执行Maven项目的离线构建,引用本地lib资源方案记录 Maven项目引用本地lib资源进行离线部署 阅读详情
AI摘要

博主写了RPC的starter包,执行命令后引入依赖无反应,手动输入包显示找不到,但Maven能找到。问题出在pom.xml文件未删除spring - boot - maven - plugin,该插件用于Spring Boot可执行JAR打包,而Spring Boot Starter只需普通依赖库,移除后重新执行mvn install可成功引入。

描述:写了一个RPC的starter包

执行命令后

mvn install

点击引入依赖无反应

手动输入对应的包显示找不到,但是在Maven可以找到

问题在于pom.xml文件,正常打包的maven文件应该可以显示出来,但是由于未删除spring-boot-maven-plugin。

spring-boot-maven-plugin 主要用于 Spring Boot 可执行 JAR(fat jar) 的打包和启动,它会将所有依赖合并到一个 JAR 文件中,并生成 META-INF/MANIFEST.MF,使得 java -jar xxx.jar 可以直接运行。

但 Spring Boot Starter(即 starter 依赖)只是一个 普通的依赖库(library JAR),它不需要也不应该是 可执行 JAR,

原来的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <!-- Project Descriptor -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.heartunderblade</groupId>
    <artifactId>starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>heartunderblade-rpc-springboot-starter</name>
    <description>Spring Boot Starter for Heartunderblade RPC</description>

    <!-- Properties Section -->
    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>

    <!-- Dependencies Section -->
    <dependencies>
        <!-- Spring Boot Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!-- Configuration Processor (for @ConfigurationProperties) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Custom Heartunderblade RPC Core -->
        <dependency>
            <groupId>com.heartunderblade.rpc</groupId>
            <artifactId>heartunderblade-rpc-core</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!-- Spring Boot Testing -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- Dependency Management Section -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- Build Section -->
    <build>
        <plugins>
            <!-- Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!-- Repositories (if needed for custom dependencies) -->
    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
        <repository>
            <id>snapshot-repo</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

移除后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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <!-- Project Descriptor -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.heartunderblade</groupId>
    <artifactId>starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>heartunderblade-rpc-springboot-starter</name>
    <description>Spring Boot Starter for Heartunderblade RPC</description>

    <!-- Properties Section -->
    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>

    <!-- Dependencies Section -->
    <dependencies>
        <!-- Spring Boot Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!-- Configuration Processor (for @ConfigurationProperties) -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Custom Heartunderblade RPC Core -->
        <dependency>
            <groupId>com.heartunderblade.rpc</groupId>
            <artifactId>heartunderblade-rpc-core</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!-- Spring Boot Testing -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- Dependency Management Section -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- Build Section -->
    <build>
        <plugins>
            <!-- Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- Repositories (if needed for custom dependencies) -->
    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
        <repository>
            <id>snapshot-repo</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

再重新执行mvn install即可成功引入

Maven systemPath依赖配置详解:原理、实践与避坑指南 在Java项目构建与依赖管理中,Maven通过坐标体系从仓库自动解析和下载依赖是其核心机制。然而,当遇到未发布到仓库的本地JAR包、遗留第三方库或调试中的模块时,常规依赖声明无法满足需求。这时,Maven提供了system作用域配合systemPath的解决方案,允许开发者直接指定文件系统路径引入依赖。这项技术本质上绕过了Maven仓库体系,将依赖管理责任交还给开发者,适用于本地测试、遗留库集成等特定场景。其技术价值在于提供了应急接入能力,但需警惕其对项目可移植性和团队协作的破坏。在实际工程实践中,合理使用 阅读详情

相关推荐

银河麒麟V10 SP3离线安装Nginx1.21.5全记录(附11个rpm包下载清单)

本文详细记录了在银河麒麟V10 SP3操作系统上离线安装Nginx 1.21.5的全过程,包括11个必备rpm包的下载清单。通过分步骤的实战指南,帮助用户在国产化环境中高效部署Nginx服务,涵盖安装、配置、调优及故障排查等关键环节,特别适合金融、政务等对安全性要求高的场景。

weixin_30872337的博客 605

maven无法自动导入依赖jar包解决方式

友情提醒:先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

baomingshu的博客 1万+

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

排查maven依赖无法引入方案

排查maven无法引入依赖方案

qq_40844989的博客 3417

全志T113 Tina5.0开发:(一)添加自己的板级支持包

3.验证 先执行 source build/envsetup.sh ,然后lunch,下图可见9就是我们自己添加的板子。2. 1)修改 t113-evb1.mk重命名为t113-ws_devboard。我使用的spinand,只需要修改openwrt里面的文件即可。以下内容仅作为自己笔记,如果错误欢迎留言指出。修改t113-ws_devboard。

u014428915的博客 1164

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出

QCC5125/QCC5144----LDAC 44.1K 48K 96K 192K 输出。而且还不需要license限制。

Alex_886的博客 1975

解决idea无法导入maven依赖的问题

如果你的maven版本正常,没有和idea版本不兼容,你的settings配置文件,maven仓库,pom文件都正常运行,也能将maven依赖下载至本地maven仓库,但idea中就是导入不了相关依赖。简单来说,这里配置的就是maven导入依赖时所能用的内存大小,xms为最小,xmx为最大,根据自己的电脑内存设置合适的内存大小即可。ps:maven无法导入依赖的原因很多,甚至有可能重启电脑就解决了,此处仅为其中一个我遇到并折磨了我很久的问题。如图,项目除了jdk之外没能导入进任何的依赖。

taolin0的博客 7779

【100%通过率】2023华为od机试C卷【电脑病毒感染】C++ 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 1727

解决内网环境(无网络)下idea导入项目,maven中有jar包却无法引入的问题

除此之外Mavenhomepath也配置成了Usersettingsfile中的maven(这是自己的一点修改应该无伤大雅,主要是上面的配置)勾选运行环境设置-DarchetypeCatalog=internal这样就可以在本地仓库中引用jar包。maven的配置里勾选workoffline即可解决问题。本文非原创,参考别人的文档而来,记录一下,怕别人删除了就没了。在第一种方式之上增加了如下配置修改。...

myiwen_15213620430的博客 9264

国科大学习资料--人工智能原理与算法-第六次作业解析(学长整理)

国科大学习资料–人工智能原理与算法-第六次作业解析(张文生老师主讲)(6.6、6.7、6.11) 6.6 说明如何通过使用辅助变量把诸如A+B=C这样的三元约束转变成三个二元约束。假设值域是有限的。(提示:考虑引进新变量表示变量对的值,引进约束如“X是Y变量对中的第一个元素”。)然后说明如何把多于三个变量的约束类似地转换为二元约束。说明如何通过改变变量的值域来消除一元约束。这就完整演示了任何CSP都可以转变为只含二元约束的CSP。 答:首先,我们引入一个新变量AB,假设A和B的范围均为N,AB的范围为N×N

无名何许人的博客 2870

电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战

摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

无法引入maven本地仓库中的jar 的问题解决思路

问题信息描述: maven仓库(reporsitory)中已存在此jar包,并且坐标正确,但引入时这个包没有引入,并且出现更新异常的标志 .lastUpdated 1.原因:可能是配置本地仓库配置错误 发现配置正确,查看maven的setting中的配置的repository也是正确的 2.配置的仓库是否未更新,更新一下还是不行 3.是忽略的pom.xml文件,查看也未忽略,说明pom文件正常解析 4.突然想到无法加载的包依赖是别人从私服(nexus中搞下来的),...

donkeyboy001的博客 9323

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

m0_51339444的博客 1806

解决Maven依赖本地jar包失败(可能原因之一)

场景 比如把A项目使用maven install命令打到本地目录,在本地目录也是可以看到打包成功的。 这个时候,项目B需要引入项目A的包,配置好之后,发现依赖A项目失败,这是什么原因呢?这个困扰了我很久,最终我是这样解决的。 解决方式 把项目A中不需要的依赖给去除掉,然后在打包到本地maven,项目B在引入项目A就没出现这个问题了。 这是可能原因之一,记录一下。 其它 如果配置没问题,还可以用以下两种方式解决: 方式一:IDEA 菜单栏,右键选择File 然后点击如下,重启IDEA即可: 方式二:重新 g

阿甘兄 2868

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Maven项目导入本地jar包

目录 场景 前设 步骤一 步骤二 步骤三 场景 springboot连接sqlserver数据库,配置pom.xml文件后,无法从中央库拉取jar包。此时我们便需要导入本地jar包,那么如何实现呢。 前设 maven添加本地包命令: mvn install:install-file -Dfile=<Jar包的地址> -DgroupId=<Jar包的GroupId> -DartifactId=<Jar包的...

小小渔夫 1886

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

关于解决maven 打包时出现的各种问题解决办法

关于解决maven 打包时出现的各种问题解决办法 一》Maven打包报错:[WARNING] The POM for xxx is missing, no dependency inform 当出现这种警告是说明 场景 使用Maven创建的一个多模块项目,一个wa-service模块,一个wa-app模块,wa-app模块依赖于wa-service模块,且他们都是WebAppDemo的子模...

xj15010735572的博客 7500

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringBoot+Dubbo 本地install productor之后consumer无法引用Dubbo依赖的问题

1 productor 首先我们先将对应写好的productor编写完成,然后使用idea提供的maven工具install命令将提供者服务依赖安装至本地,或者使用maven deploy命令提交至远程服务器才能正常引入,否则会包依赖包找不到。 2 consumer 编写对应的consumer代码controller,然后引入productor的依赖 如上图所示,comsumer端无法引用到productor提供的dubbo服务依赖。 3 原因 如上图所示: 查看引...

weixin_41879185的博客 474

maven如何把本地jar包一起打包到war

1. 项目根目录新建lib文件夹,jar包放入 2.在pom里引入本地文件 3.此时刷新pom后,应该就可以识别jar,运行项目,不行的话按下图操作: 先选中jar,在add as library 4.如果你要打包的,现在是报错的,找不到程序包,需要在pom里添加插件: <plugin> <artifactId>maven-compiler-plugin</artifactId> ...

waitu88的博客 668

spring-boot-maven-plugin 打包导致第三方项目引入依赖后,无法使用

1、如果你的 JAR 包是作为公共库(比如工具类、注解、SDK、Starter 等)被其他项目依赖的,那么你不应该使用打成可执行 fat jar,而是应该使用标准的 Maven 打包方式—— 也就是默认的。这里默认的,就是你什么都不用在 配置,就行,但是如果你配置了 spring-boot-maven-plugin,那记得把这个去掉。

卷心菜投手 486

Maven 项目中将本地依赖库打包到最终的 JAR 中

在现代后端开发中,构建高效且可扩展的 Web 应用程序通常依赖于多种第三方库和内部依赖。这些依赖可以来自公共仓库,也可能是公司内部自研的库或尚未发布到公共仓库的 JAR 包。本文将详细介绍如何在 Maven 项目中处理本地依赖库,并确保这些依赖能够正确地打包到最终的可执行 JAR 文件中。本文不仅以 Doris 连接器(flink-doris-connector)作为示例,还涵盖了处理其他本地依赖库的通用方法。为什么需要打包本地依赖库?通常,依赖库可以通过 Maven 中央仓库或其他公共仓库轻松获取和管理。

墨鸦的博客 1万+

Maven引用本地jar包以及打包发布注意事项

2、maven编译时找不到本地引用的jar包 在maven编译完成后,运行jar包的时候报错找不到本地引用的jar包,需要在pom文件中build中增加配置: 同步下maven后重新编译发现问题解决。在pom中添加如下配置 maven编译后可以在target中看到生成的jar包,如下图:完整的build如下:............

qq_37634156的博客 1万+

【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出

Maven中,可用system范围和systemPath参数引用本地.jar文件,或使用命令安装到本地仓库。为了省去在新机器上安装的麻烦,需在pom.xml文件中声明元素指定本地仓库路径,以便Maven自动查找依赖。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 6611

maven打包--同时将仓库依赖和本地依赖的jar包也打进去

maven添加依赖 首先,如何在maven项目中添加依赖包?这个相信对于大部分人来说是非常简单的,在pom.xml文件如下配置: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> ...

sgyuanshi的博客 3万+

maven项目打包 导入本地依赖并打包

打jar包

sunhaijingxiaohai的专栏 7807

aar打包、发布到maven、带第三方依赖的打包、带本地module依赖的打包

打包Maven(里面有第三方依赖和本地module依赖)一、普通的aar打包二、带有第三方依赖的aar打包三、带有本地module依赖的aar打包 背景简单介绍: app依赖lib 1,lib1依赖 lib2,lib1 里面还有第三方的gihub依赖,lib2里面也什么都没有依赖,就是一个单纯的封装的工具module,现在的任务是: 1、lib2做成aar。(配合讲解普通的aar如何打包) 2、lib1做成aar。(配合讲解带第三方依赖的lib怎么打包成aar,带本地lib module的怎么打包成aar

qq_34723470的博客 7415
上一篇: 利用CAS实现无锁访问共享变量
下一篇: 力扣48旋转图像
format_push
博客等级 码龄4年 104粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值