【问题标题】:How does Maven Dependency Plugin determine used dependenciesMaven Dependency Plugin 如何确定使用的依赖项
【发布时间】:2018-08-10 11:10:47
【问题描述】:

我正在一个专门的 Maven 模块中处理 Java servlet。

Maven 依赖插件抱怨

 [WARNING] Used undeclared dependencies found:    
 [WARNING]  javax.servlet:servlet-api:jar:2.3:compile

除了不明白如何插件确定我在使用这个依赖之外,我确实在 pom.xml 中声明了它:

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
</dependency>

但是,插件抱怨以下内容:

[WARNING] Unused declared dependencies found:
[WARNING]    javax.servlet:servlet-api:jar:2.3:compile

这似乎是一个僵局。

两个问题:

  1. 知道如何克服这个问题吗?
  2. 任何指针究竟如何 插件得出的结论是我正在使用此依赖项?

附加信息: 我正在使用依赖项

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>

这足以编译。

【问题讨论】:

  • 在eclipse中你可以查看依赖hiracy。在那里你应该能够看到这个 dependency 来自哪里。
  • 我不明白你的意思。我不打算知道插件来自哪里。我打算了解插件如何得出我正在使用 javax.servlet:servlet-api 的结论。
  • 是的,我明白了。在dependcy hirachy 视图中,您可以查看项目中使用的所有依赖项以及它们的来源。所以在那里你应该看到avax.servlet:servlet-api. 以及它所包含的依赖项。

标签: java maven servlets


【解决方案1】:

该插件抱怨您使用该依赖项这一事实,因此建议您将其从 pom.xml 中删除。一个可能的解决方案是将该依赖项的范围设置为provided,因为 servlet 类是由 servlet 容器在运行时提供的:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>...</version>
    <scope>provided</scope>
</dependency>

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多