maven加载本地jar包,无法将本地jar包打进项目

加载本地jar包,无法将jar打进包

1、问题介绍

​ 项目依赖某个私有jar包,由于各种原因,没有将jar包打进本地maven库,选择使用放到项目lib下引用,但是打包时lib文件夹下的依赖包打不进去,查看原因后,是因为下的的作用域问题,使用本地lib,都会选择system,而system的作用域默认不将jar打进war包中,下边先写解决方法,对的详细介绍放在最后。

2、问题解决

​ 1.首先在项目lib下引入本地jar包

maven加载本地jar包,无法将本地jar包打进项目_第1张图片

​ 2.在pom.xml文件中引入jar包

<dependency>
	<groupId>org.jsongroupId>
	<artifactId>jsonartifactId>
	<version>20180130version>
	<scope>systemscope>
	<systemPath>${project.basedir}/lib/json-20180130.jarsystemPath>
dependency>
<dependency>
	<groupId>org.jsongroupId>
	<artifactId>json-smartartifactId>
	<version>2.3version>
	<scope>systemscope>
	<systemPath>${project.basedir}/lib/json-smart-2.3.jarsystemPath>
dependency>

​ 3. 使用maven插件,将scopt=system的jar包打进war包中,如果是boot项目,可以选择下面那种方法,我使用的是第一种,亲测

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.pluginsgroupId>
			<artifactId>maven-dependency-pluginartifactId>
			<version>2.10version>
			<executions>
				<execution>
					<id>copy-dependenciesid>
					<phase>compilephase>
					<goals>
						<goal>copy-dependenciesgoal>
					goals>
					<configuration>
						<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/liboutputDirectory>
						<includeScope>systemincludeScope>
					configuration>
				execution>
			executions>
		plugin>
	plugins>
build>
<plugin>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-maven-pluginartifactId>
    <configuration>
        <includeSystemScope>trueincludeSystemScope>
        <mainClass>com.startboot.StartApplicationmainClass>
    configuration>
plugin>

3、扩展

​ scope元素的作用:控制dependency(依赖)的使用范围,换句话说是控制Jar包在哪些范围,哪些情况下被加载和使用。

​ scope元素的范围: compile、test、provided、runtime、system、import

1.complie

​ complie为默认依赖范围,适用于所有阶段,包括:编译、测试、运行。这些jar包会传递到依赖的上层项目中。运行时会被打包进项目(jar或war)。

2.test

​ test表示被依赖的jar包,只有测试情况下生效,编译和运行时都无效,例如:junit。

3.provided

​ provided在编译和测试时有效,运行时失效,运行时不会被打进项目(jar包或war包)

4.runtime

​ runtime在运行和测试时有效,编译时失效。编译时会被打进项目(jar包或war包)

5.system

​ system和provided类似,只是需要指定本地jar包的路径,在测试和运行时有效,只是scope为system时,需要在build中修改参数才可使用,方法参考问题解决

你可能感兴趣的:(jar,maven,java)