乐趣区

关于maven:maven项目引入本地jar包史上最详细实践方法

日期 作者 版本 备注
2020-09-27 dingbin V1.0

maven 引入本地 jar 包问题从 3 个层面思考:

1. IDE 工具如 Jetbrains IDEA 思考:

顺次关上 IDEA 的 File – Project Structure – Project Settings – Modules –
Dependencies 选项卡区域,点击右上角 + 号图标,抉择 1.JARS or
directories…,再抉择 java 工程根目录下的 lib 或 libs 目录下,把所有须要本地引入的 jar 包都多选中,
而后点击 OK 即可。


2. Maven 编译层面思考:

在 pom.xml 文件中 dependencies 组件的最初局部增加如下图的本地依赖 jar 包。

留神 scope 为 system 示意本地的 jar 包。
systemPath 为本地门路,肯定要用 ${project.basedir}/ 结尾引入,以表通用型。

以上 3 个中央如此批改后,联结的成果是,mvn clean package
后会 target 目录下生成一个 lib 目录,并且把所有的近程 jar 包和本地 jar 包都拷贝到 lib 目录下,以供前期 java 程序运行时找到之用。留神本地 jar 包会以上图中绿色框的约定的命名形式呈现在 lib 目录下。

上图中 <addClasspath>true</addClasspath> 表明会在生成的指标 jar 文件中 MANIFEST.MF 中增加 classpath 如下图,<classpathPrefix>lib</classpathPrefix>
表明会给 MANIFEST.MF 中的 classpath 中每一个 classpath 加一个前缀 lib. 这些个性都十分重要。

因而 <plugins></plugins> 组件下一共有 3 项:

以 vim 关上生成的指标 jar 包 vi mylucenedemo.jar: 后:

光标放在 MANIFEST.MF 上按下回车,即可看到:

此外,如果有需要的话,java 工程指标 jar 的运行可能还依赖于一些配置文件,通过 pom.xml 中 profiles 下的 profile 将其拷贝到 target 目录下的 conf 目录中去:

成果如下图:

3. 指标 jar 程序执行层面思考:

接下来,就能够在 java 工程的根目录下执行:mvn clean install -U, 会生成如下的 target 目录,有用的是 conf 目录,lib 目录和指标文件 mylucenedemo.jar.

执行形式是:在 target 目录下间接执行 java -jar mylucenedemo.jar 即可。

会主动读取以后目下的 lib 子目录的所有依赖 jar 包,包含引入的本地 jar 包。以及 conf 目录下的所有配置文件。

最初,另附示例 pox.xml: pom.xml, 提取码:h1e1。

退出移动版