日期 | 作者 | 版本 | 备注 |
---|---|---|---|
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。