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


目录
相关文章
|
6月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
238 6
|
7月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
472 28
|
10月前
|
前端开发 JavaScript Java
Java构建工具-maven的复习笔记【适用于复习】
这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
283 3
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
246 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
1762 3
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
253 5
|
数据采集 分布式计算 Java
Kettle的Java开发环境需要什么jar包?
【10月更文挑战第24天】Kettle的Java开发环境需要什么jar包?
431 2
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
669 4
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
324 0
|
Java 数据库连接 Maven
【Java笔记+踩坑】Maven高级
分模块开发、依赖传递与冲突问题、 可选依赖和排除依赖、聚合和继承、属性、多环境配置与应用、私服安装和使用
【Java笔记+踩坑】Maven高级

推荐镜像

更多