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