java - Maven 对 zip Artifact 的依赖

标签 java maven

我有一个项目需要依赖于另一个项目生成的 ZIP 文件。那个“其他项目”不在我的控制之下。正确构建我的项目需要 ZIP 文件。执行我的项目不需要它。我需要 Maven 为我下载 ZIP 文件。

我目前创建了对 ZIP Artifact 的依赖项,如下所示:

<dependency>
    <groupId>org.foo</groupId>
    <artifactId>zeus</artifactId>
    <version>1.1</version>
    <type>zip</type>
    <scope>test</scope>
</dependency>

我的问题是范围。如果我使用除 test 之外的任何东西,它会带来很多来自“其他项目”的传递依赖项,这会搞砸我自己的项目。使用 test 作为范围实际上可以完成这项工作,但它在我的 IDE 中显示为测试依赖项。所以我觉得我做错了什么。这不是测试依赖性!

我查看了可用的 Maven 范围(“编译”、“提供”等),但似乎找不到与我的用例匹配的范围。我做错了什么吗?

最佳答案

您可以使用通配符排除所有传递依赖项:

<dependency>
    <groupId>org.foo</groupId>
    <artifactId>zeus</artifactId>
    <version>1.1</version>
    <type>zip</type>
    <scope>compile</scope>
    <exclusions>
        <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

(来源Exclude all transitive dependencies of a single dependency)

关于java - Maven 对 zip Artifact 的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20513643/

相关文章:

java - 如何配置maven urlrewrite

java - 无法使用带有 % 或 * 的 LIKE 搜索 MS Access 数据库

Java REST Web 服务 404 错误

java - 子类化泛型 - 构造函数继承

java - 在 Cucumber 框架中的报告中生成 json 之后,在哪里调用 jar 文件(ATM)?

eclipse - 从 git 存储库 check out Maven 项目

java - Gson 用作使用 Jersey 1.x 的 Provider

java - 带逗号和不带逗号的数组

java - 为什么由于假设失败而跳过的 junit 测试未报告为已跳过?

java - 如何指示 Eclipse JDK 1.6 是 Java 1.6 兼容的 JRE?