Maven - Scala/Java 项目添加自己的 jar 包

简介: 一.引言scala / java 项目引用非官方依赖 jar 包时,需要自定义并打入最终的 jar 包,经过试验以下方案可以实现。二.添加 jar 包到 maven 库 ????第三方自定义 jar 包可以添加到本地 maven 库中,随后即可 mvn package 打入到最终的项目 jar 包中,该方法最方便。创建 install.sh 文件,jar_path 为第三方自定义 jar 包在设备的位置,groupId、artifactId 和 版本号 version 自己定义,执行脚本后

 一.引言

scala / java 项目引用非官方依赖 jar 包时,需要自定义并打入最终的 jar 包,经过试验以下方案可以实现。

二.添加 jar 包到 maven 库 👍

第三方自定义 jar 包可以添加到本地 maven 库中,随后即可 mvn package 打入到最终的项目 jar 包中,该方法最方便。创建 install.sh 文件,jar_path 为第三方自定义 jar 包在设备的位置,groupId、artifactId 和 版本号 version 自己定义,执行脚本后 echo 会打印出对应依赖的 pom 格式,粘贴复制到项目 maven 中后打包即可添加该 jar。

#!/bin/bash
jar_path=./lib/yourself.jar
jar_groupId=com.self
DartifactId=myjar
Dversion=0.1
mvn install:install-file -Dfile=$jar_path -DgroupId=$jar_groupId -DartifactId=$DartifactId -Dversion=$Dversion -Dpackaging=jar -DgeneratePom=true
pom="<dependency>\n
\t<groupId>$jar_groupId</groupId>\n
\t<artifactId>$DartifactId</artifactId>\n
\t<version>$Dversion</version>\n
</dependency>"
echo $pom

image.gif

三.添加 jar 包到 项目目录

上面的方法可以将对应第三方 jar 添加至最终的 jar 包中,除此之外,也可以将第三方 jar 包放到项目中,也可以实现上述效果。

1.添加 jar 包到项目

可以直接在 root 目录下创建 lib 文件夹,也可以在 src/main/resources 文件夹下创建 lib 文件夹,然后将第三方 jar 包拷贝至创建的目录中。

image.gif编辑

2.添加 jar 包到 maven

File -> Project Structrue -> Libraries -> + -> java 到项目对应位置选择 jar 包即可添加,后面项目中即可正常使用该第三方 jar 包。

image.gif编辑

3.第三方 jar 包打入最终 jar 包

正常情况下直接 mvn package 即可将第三方 jar 包打入,如果打包不生效就在 pom 中添加如下 plugin 配置:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
            <compilerArguments>
                <extdirs>${project.basedir}/lib</extdirs>
            </compilerArguments>
        </configuration>
    </plugin>
</plugins>

image.gif

extdirs 的地址中 ${project.basedir} 是该项目的根目录,后续 lib 为添加的项目地址,如果添加到 src/main/resources/lib 下,则修改为 ${project.basedir}/src/main/resources/lib。

四.总结

这里推荐使用第一个 👍 的方法,整体比较简洁省事,如果第三方 jar 包通过 --jars 传入,则 lib 下对应的第三方 jar 包只用于编译,此时使用 scope = syetem 的打包方式即可,这样可以压缩最终 jar 包的大小,减小传输量 :

<dependency>
    <groupId>$groupId</groupId>
    <artifactId>$artifactId</artifactId>
    <version>$version</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/your.jar</systemPath>
</dependency>

image.gif


目录
相关文章
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
353 1
|
3月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
1139 1
|
3月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
481 64
|
2月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
172 1
|
2月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
4月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
214 1
|
4月前
|
缓存 Java 数据库
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
216 2
|
4月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
315 0
|
4月前
|
人工智能 安全 Java
掌握Java反射:在项目中高效应用反射机制
Java反射是一种强大功能,允许程序在运行时动态获取类信息、创建对象、调用方法和访问字段,提升程序灵活性。它在框架开发、动态代理、注解处理等场景中广泛应用,如Spring和Hibernate。但反射也存在性能开销、安全风险和代码复杂性,应谨慎使用。
122 0

推荐镜像

更多