Maven 没有将一些 JAR 复制到 WEB-INF/lib
Posted
技术标签:
【中文标题】Maven 没有将一些 JAR 复制到 WEB-INF/lib【英文标题】:Maven not copying some JAR to WEB-INF/lib 【发布时间】:2013-04-12 07:37:06 【问题描述】:我在 Eclipse 中使用 Maven 创建了一个 Web 项目。我需要该项目的 pentaho 库 jar,这是我的依赖项
<dependency>
<groupId>pentaho-library</groupId>
<artifactId>libbase</artifactId>
<version>1.2.8</version>
<optional>true</optional>
</dependency>
当我运行mvn:compile
或mvn eclipse:eclipse
时,它正在下载maven_repo
本地目录中的JAR 文件
我正在使用以下战争插件
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
</plugin>
问题是,当我运行mvn war:war
创建war 文件时,它没有将libbase-1.2.8.jar 复制到WEB-INF/lib 文件夹。但它正在复制所有其他 JAR 文件。有什么问题?
【问题讨论】:
【参考方案1】:尝试删除<optional>true</optional>
。
【讨论】:
【参考方案2】:Introduction to the Dependency Mechanism: Transitive Dependencies 告诉我们optional
如下:-
可选依赖项 - 如果项目 Y 依赖于项目 Z,项目 Y 的所有者可以使用 @987654324 将项目 Z 标记为
optional dependency
@ 元素。当项目 X 依赖于项目 Y 时,X 将仅依赖于 Y 而不依赖于 Y 的可选依赖 Z。然后,项目 X 的所有者可以根据自己的选择显式添加对 Z 的依赖项。 (将可选依赖项视为“默认排除”可能会有所帮助。)
那么optional
依赖将不会包含在我们的WEB-INF/lib
中。
我希望这会有所帮助。
【讨论】:
是的,我已经删除了optional
以上是关于Maven 没有将一些 JAR 复制到 WEB-INF/lib的主要内容,如果未能解决你的问题,请参考以下文章
如何让maven 将工程依赖的jar 复制到WEB-INF/lib 目录下
让 Maven2 将资源复制到构建目录,但不将它们捆绑在 JAR 中