Maven Dependency Analyzer:如何解决范围问题;提供';?

Maven Dependency Analyzer:如何解决范围问题;提供';?,maven,dependency-management,maven-dependency-plugin,Maven,Dependency Management,Maven Dependency Plugin,我已经开始在我们的构建中使用maven依赖插件:analyze only来清理POM。基本上,我们希望所有依赖项都在POM中声明,而不是依赖于用于编译的可传递依赖项 这很好,但我对提供的范围有问题。我们定义了一个包含所有JavaEE依赖项的POM(我们使用的是JBossEAP)。当然,所有JEE API都必须提供范围。这就是为什么我们要做以下工作: <dependency> <groupId>foobar</groupId> <artifactI

我已经开始在我们的构建中使用
maven依赖插件:analyze only
来清理POM。基本上,我们希望所有依赖项都在POM中声明,而不是依赖于用于编译的可传递依赖项

这很好,但我对提供的
范围有问题。我们定义了一个包含所有JavaEE依赖项的POM(我们使用的是JBossEAP)。当然,所有JEE API都必须提供
范围。这就是为什么我们要做以下工作:

<dependency>
  <groupId>foobar</groupId>
  <artifactId>jee7-api</artifactId>
  <scope>provided</scope>
  <type>pom</type>
</dependency>
我做错了什么


我知道我可以打开插件的
ignoreNonCompile
,但我想检查所有的依赖范围。

我在org.eclipse.persistence中遇到了类似的问题:javax.persistence和javaee api(版本7),我可以通过更改pom中的出现顺序来消除警告。我将javax.persistence依赖项放在javaeeapi依赖项之前(这意味着如果您有多个警告,则后者必须排在最后)

PS:我不像你那样使用pom工件

<groupId>foobar</groupId>
<artifactId>jee7-api</artifactId>
<packaging>pom</packaging>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.eap</groupId>
      <artifactId>jboss-eap-parent</artifactId>
      <version>${jboss-eap-parent.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.spec</groupId>
      <artifactId>jboss-javaee-7.0</artifactId>
      <version>${jboss-javaee-7.0.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
<dependencies>
  <dependency>
    <groupId>org.jboss.spec.javax.annotation</groupId>
    <artifactId>jboss-annotations-api_1.2_spec</artifactId>
  </dependency>
  <dependency>
    <groupId>org.jboss.spec.javax.batch</groupId>
    <artifactId>jboss-batch-api_1.0_spec</artifactId>
  </dependency>
  ... etc. etc.
</dependencies>
[INFO] --- maven-dependency-plugin:3.1.1:analyze-only (analyze-dependencies) @ my-project ---
[WARNING] Used undeclared dependencies found:
[WARNING]    org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final-redhat-1:provided
[WARNING]    javax.inject:javax.inject:jar:1.0.0.redhat-6:provided
[WARNING]    javax.validation:validation-api:jar:1.1.0.Final-redhat-1:provided
[WARNING]    xml-apis:xml-apis:jar:1.0.b2:test
[WARNING]    javax.enterprise:cdi-api:jar:1.2.0.redhat-2:provided
[WARNING]    org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final-redhat-1:provided