2

我在 Eclipse 中使用 Maven 创建了一个 Web 项目。我需要该项目的 pentaho 库 jar,这是我的依赖项

<dependency>
    <groupId>pentaho-library</groupId>
    <artifactId>libbase</artifactId>
    <version>1.2.8</version>
    <optional>true</optional>
</dependency>

当我运行mvn:compileormvn 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 文件。问题是什么?

4

2 回答 2

2

尝试删除<optional>true</optional>.

于 2013-04-12T07:42:42.133 回答
1

依赖机制简介:传递依赖告诉我们以下optional内容:-

可选依赖项- 如果项目 Y 依赖于项目 Z,项目 Y 的所有者可以optional dependency使用该"optional"元素将项目 Z 标记为 。

当项目 X 依赖于项目 Y 时,X 将仅依赖于 Y,而不依赖于 Y 的可选依赖项Z。然后,项目 X 的​​所有者可以根据自己的选择显式添加对 Z 的依赖项。(将可选依赖项视为“默认排除”可能会有所帮助。

那么这个optional依赖就不会被包含到我们的WEB-INF/lib.

我希望这可能会有所帮助。

于 2013-04-12T07:47:00.443 回答