Maven工程打包本地Jar到项目中

Maven工程打包本地Jar到项目中

使用Maven管理项目依赖的时候,项目中所用到的Jar不一定在Maven的中央仓库都能找到,它仅在本地。为了把它打包到项目中。可以有2个方法

  • 通过maven把这个Jar install到本地仓库,并且指定坐标id,在工程中。按照坐标引入。
  • Jar复制到工程中,通过maven的配置,在编译打包的时候,把它一起打包进去。(建议)

把Jar复制到工程中

在Maven工程根目录下创建 lib 目录,专门存放本地的第三方的依赖。工程结构类似于下

app
|-lib
|-src/main/java
|-src/main/resources

ojdbc6.jar 为例

image

在 pom.xml 中声明依赖

<dependency>
	<groupId>ojdbc6</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>1.0</version>
	<scope>system</scope>
	<systemPath>${basedir}/lib/ojdbc6.jar</systemPath> 
</dependency>

坐标信息,可以自定义。
scope 设置依赖为本地依赖 systemsystemPath 指定jar的位置。

非 SpringBoot工程的配置

<resource>
	<!-- jar所在的源目录 -->
    <directory>${basedir}/lib</directory>
    <!-- jar打包到项目的位置 -->
    <targetPath>BOOT-INF/lib/</targetPath>
    <includes>	
        <include>**/*.jar</include>
    </includes>
</resource>
<resource>
     <directory>src/main/resources</directory>
     <includes>
         <include>**/*</include>
     </includes>
</resource>

SpringBoot工程的配置

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<!-- 打包本地jar -->
	<configuration>
		<includeSystemScope>true</includeSystemScope>
	</configuration>
</plugin>

War包的情况下,打包配置

通过配置 maven-war-plugin 插件打包

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<version>3.0.0</version>
	<configuration>
		<webResources>
			<resource>
				<directory>${project.basedir}/src/main/resources/lib/net/pusuo</directory>
				<targetPath>WEB-INF/lib</targetPath>
				<filtering>false</filtering>
				<includes>
					<include>**/*.jar</include>
				</includes>
			</resource>
		</webResources>
	</configuration>
</plugin>

QSCZVS4DDZ8N(}GJ{YI)CXW