首页 > 其他分享 >maven引用本地jar包

maven引用本地jar包

时间:2024-05-18 23:20:09浏览次数:27  
标签:1.0 cn lib xxx jar maven 本地

背景:

公司前置的项目包对接客户公司的sdk包,由于此前置项目完全定制化,且改sdk包非通用包,不好上传至公司的maven私服使用,故引入本地jar包,此处总结改方案

1. 代码引入第三方jar包

在项目中新建成lib文件夹,结构与srv平级

img

2. pom文件修改

<dependency>
    <groupId>cn.xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/cn.xxx.xxx-1.0.0-SNAPSHOT.jar</systemPath>
</dependency>

打包插件配置

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <useUniqueVersions>false</useUniqueVersions>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib</classpathPrefix>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>lib/cn.xxx.xxx-1.0.0-SNAPSHOT.jar</Class-Path>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
         <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/lib</outputDirectory>
                            <excludeArtifactIds>
                                cn.xxx.xxx-1.0.0-SNAPSHOT.jar
                            </excludeArtifactIds>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>copy-resources-ext</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/lib</outputDirectory>
                            <overwrite>true</overwrite>
                            <resources>
                                <resource>
                                    <directory>${basedir}/lib</directory>
                                    <includes>
                                        <include>*.jar</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    </plugins>
</build>

该插件三个部分

  1. 将本地包打包至指定位置lib下
  2. 所有的jar包拷贝至target/lib下,出了改本地包
  3. 将所有的target/lib包拷贝至jar包外的lib包下(这样实现第三方jar包与业务包分离,而不是打包成一个整体,方便后续更新只更新指定的包)

至此,引入本地包可运行项目,打包也是正常

标签:1.0,cn,lib,xxx,jar,maven,本地
From: https://www.cnblogs.com/live2learn/p/18199915

相关文章

  • Java(7)-Maven抽取公共模块构建jar包
    前提假设:项目中有两个Moudle,分别是Moudle1和Moudle2,它们有些代码是相同的,比如相同的类和API,重复书写当然可以正常运行,但是我们可以用maven打包成jar包,其他Moudle直接引用即可。步骤1.新建一个Module-commonpox.xml中配置Module1和Moudle2同样使用的依赖:<dependencies......
  • 【ubuntu】安装Maven
    1、官方下载https://maven.apache.org/download.cgi2、安装方法sudoaptinstallmaven 3、配置本地仓库默认~/.m2/repository, 可以自己修改全局配置:${maven.home}/conf/settings.xml用户级别:${user.home}/.m2/settings.xml <settings>...<localReposi......
  • ArchLinux/Manjaro升级到6.9内核后的问题解决
    1.KDEWallet系统配置---个性化---账户详细信息---kde钱包1.需要启用kde钱包子系统,否则无法正常使用记录的账号密码信息2.右下角,调用钱包管理器,修改密码,设置为空密码至此,开机需要输密码连接kdewallet的应用不需要输入即可密码连接2.更新archcn-keyring报GPG错误解决:sudopa......
  • Dapr 与 .NET Aspire 结合使用获得无与伦比的本地开发体验
    Dapr提供了一组构建块,用于抽象分布式系统中常用的概念。这包括服务、缓存、工作流、复原能力、机密管理等之间的安全同步和异步通信。不必自己实现这些功能,可以消除样板,降低复杂性,并允许您专注于开发业务功能。在您的时间有限并且您只想进行实验的情况下,在Dapr初始设置上花费大量......
  • Maven安装与配置,Idea配置Maven
    maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。一、下载Maven选择你需要的maven版本下载:官网下载传送门我使用的是3.6.1版本:maven-3.6.1-bin.zip二、安装把下载好的maven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹,如:三、配置环境变量1.右键此电脑......
  • IDEA配置Maven
    原文链接:https://blog.csdn.net/leah126/article/details/132020904一、Maven下载首先我们进入maven官方网站,进入网页后,点击Download去下载。下载免安装版,解压即可,解压至磁盘任意目录,尽量不要取中文名如下图:二、配置Maven环境变量 打开cmd命令行,输入mvn-v,显示出maven的版......
  • Springboot搭建dubbo+zookeeper本地项目
    1、下载zookeeper什么是zookeeper:https://www.cnblogs.com/Bernard94/p/17495775.html下载地址:https://dlcdn.apache.org/zookeeper/zookeeper-3.7.2/下载好解压后进入conf目录下,把‘zoo_sample.cfg’复制并改名为‘zoo.cfg’:修改配置文件的日志地址,修改到自己指定位置(非必......
  • 前端启动失败,踩坑/报错node-sass版本与本地环境不符
    Node自带npm,但自己可能后期升级过npm,终端使用命令自查当前node与npm版本号,按照需要对照下图修改。通常是由于前端项目sass版本与本机Node环境不符导致前端启动失败,可在前端项目的package.json中找到node-sass版本号.       node与node-sass版本匹配图,直戳官网......
  • jar没有主清单属性
    解决办法在pom.xml中添加/修改maven打包依赖:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>......
  • 部署jar包并设置桌面启动器
    来自:https://blog.csdn.net/qq_41841482/article/details/136707345前言服务器安装的是Ubuntu系统(Ubuntu是linux的一个发行版本),然后将一个java程序部署在服务器中。因为现场使用人员不熟悉linux系统,不会使用命令行启动程序,故需要制作一个类似windows中bat文件,让用户直接双击就能......