日期作者版本备注
2020-09-27dingbinV1.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。