maven - 不在 war 文件中包含 src/lib/*.jar
问题描述
我想要运行 mvn verify
将文件夹中的所有文件包含/lib/
到文件夹“web-inf/lib”中的战争档案中
所以这里是我的 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myhost</groupId>
<artifactId>sailero</artifactId>
<name>myapp</name>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.7.0</version>
</dependency>
<dependency>
<groupId>com.host</groupId>
<artifactId>some-lib</artifactId>
<scope>system</scope>
<version>0.0.1</version>
<systemPath>${project.basedir}/lib/some-lib-0.0.1.jar</systemPath>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<configuration>
<packagingIncludes>lib/*.jar</packagingIncludes>
</configuration>
</configuration>
</plugin>
在控制台中:
mvn verify
但在战争中不包括 some-lib-0.0.1.jar
在战争中\target\myapp-1.0-SNAPSHOT.war\WEB-INF\lib\
-> 不存在“ some-lib-0.0.1.jar
”,但包括所有其他依赖项。
解决方案
Maven 战争插件自动将所有项目依赖复制到 WEB-INF/lib 中。因此,如果您的战争需要依赖项,只需将相关 GAV 放入此模块的依赖项部分。
示例:在您的 pom 中,您依赖于:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.7.0</version>
</dependency>
因此它将自动包含在WEB-INF/lib
您的 WAR 中。
现在它不适用于范围内的依赖关系,system
这是问题的根本原因。长话短说,这个问题已经在 SO 中提出/回答。
最重要的是,我建议摆脱系统依赖并将其至少放在本地 repo 中,或者理想情况下放在 Nexus 或 Artifactory 等代理中。但是,当然,欢迎您测试提供的链接中建议的其他方法。
推荐阅读
- javascript - vue create with e2e 显示奇怪的错误
- angular-material - cypress:角度材质滑块的设置值
- python - 重命名熊猫数据框中的一百个或更多列名
- python - Json 到 django 模型。Python 数据类型错误
- javascript - 如何在 EJS 中实现 CSS 文件
- netsuite - 有没有办法在 NetSuite 上的已保存搜索中搜索多个关键字?
- typo3 - 如何在我们的本地机器上设置现有的 TYPO3 项目?
- javascript - Angular Karma - TypeError:无法读取未定义的属性“_id”
- android - 如何添加 android 的多个不同的 firebase api 密钥以使用解析服务器发送推送?
- jwt - 如何在前端安全地存储 JWT