》描述:已知下面是引用本地jar包依赖进项目的一种方式,但是这样只在本地运行有用,并不能将本地jar包打进项目war里面
bash
<scope>system</scope>
<systemPath>${pom.basedir}/lib/xxx.jar</systemPath>
解决:这段代码放在 Maven 项目的 pom.xml
文件中。具体来说,它应该放在 <build>
标签内的 <plugins>
标签内的 <plugin>
标签内的 configuration
标签内
bash
<webResources>
<resource>
<!-- 指向的是包含所有要用 jar 包的目录 -->
<directory>${project.parent.basedir}/sys-common/pack_lib</directory>
<!-- 编译后要把这些 jar 包复制到的位置【打包后处于war包下的位置】 -->
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
${project.parent.basedir}:父模块(父项目)的根路径;【用于可能引用父模块下其它子模块的路径】
${project.basedir}: 当前模块(项目)的根路径;
<include>**/*.jar</include> 用于指定哪些文件应该被包含在构建过程中。
<includes> 标签用于定义一个包含模式的列表。每个 <include> 标签定义一个包含模式。
在这个例子中,'**/*.jar' 是一个包含模式。这个模式会匹配任何目录下的 .jar 文件。'**' 表示任何目录(包括嵌套的目录),'*.jar' 表示任何以 .jar 结尾的文件。
示例(pom.xml)文件下:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version> <!-- 请使用你需要的版本 -->
<configuration>
<webResources>
<resource>
<directory>${project.parent.basedir}/sys-common/pack_lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
...
</project>