我在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文件
我正在使用以下war插件
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
</plugin>
问题是,当我运行mvn war:war
来创建war文件时,它不会将libbase-1.2.8.jar复制到WEB-INF / lib文件夹。但它正在复制所有其他JAR文件。有什么问题?
答案 0 :(得分:2)
尝试删除<optional>true</optional>
。
答案 1 :(得分:1)
Introduction to the Dependency Mechanism: Transitive Dependencies告诉我们optional
如下: -
可选依赖项 - 如果项目Y依赖于项目Z,项目Y的所有者可以使用将项目Z标记为
optional dependency
"optional"
元素。当项目X依赖于项目Y时,X将仅依赖于Y而不依赖于Y的可选依赖项Z 。然后,项目X的所有者可以根据她的选择明确地添加对Z的依赖性。 ( 将可选依赖项视为“默认排除”可能会有所帮助。 )
然后optional
依赖关系不会包含在WEB-INF/lib
。
我希望这可能有所帮助。