远方蔚蓝
一刹那情真,相逢不如不见

文章数量 126

访问次数 199895

运行天数 1437

最近活跃 2024-10-04 23:36:48

进入后台管理系统

Maven把本地引入的jar包发布到tomcat


这里以多模块项目为例子
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的文件夹中