这里以多模块项目为例子
1、在父项目源文件(src)同目录下创建lib文件夹,把项目所用到的jar单独放到这个文件夹中,子项目中就不需要存放
2、在父项目的pom中添加项目lib的jar依赖,如下
<dependency>
<groupId>com.goldpac</groupId>
<artifactId>vb-core</artifactId>
<version>1.0.2</version>
<scope>system</scope>
<systemPath>${basedir}/../lib/vb-core-1.0.2.jar</systemPath>
</dependency>
${basedir}/../lib:在根目录的上一级目录查找lib
由于子项目模块和lib同级,因此,子项目的pom继承父项目的pom,如果父项目的pom的jar包依赖的systemPath这么写${basedir}/lib/,子项目就会在他的根目录去查找lib文件夹,但是,我们的jar包都放在父项目的lib中,因此,父项目的pom的jar包依赖的systemPath这么写${basedir}/../lib/,子项目继承后,就会在子项目的根目录的上一级去查找lib
这里会有个问题,因为父项目的pom的jar包的依赖的systemPath这么写${basedir}/../lib/,父项目就会去他的根目录的上一级去找,找不到就会报错。我这里是忽略了,由着他去报错,不影响后面子项目的运行
3、在子模块要发布到tomcat的项目的pom中添加如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!-- 下面是为了将本地jar包打入WEB-INF/lib下而增加的配置-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<!-- 指向的是包含所有要用jar包的目录 -->
<directory>${basedir}/../lib</directory>
<!-- 编译后要把这些jar包复制到的位置 -->
<targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
directory:搜索资源目录
targetPath:目标路径
filtering:是否过滤
includes:包括哪些文件
${basedir}:根目录
${project.basedir}:资源根目录
发布项目到tomcat时,就会把该目录下添加了引用的jar包发布到tomcat项目路径WEB-INF/lib的文件夹中