maven插件覆盖不起作用 [英] maven plugin override not work

查看:566
本文介绍了maven插件覆盖不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在父pom中有一个插件,代码如下:

 <! -  Test Plugin  - > ; 
< plugin>
< groupId> org.apache.maven.plugins< / groupId>
< artifactId> maven-surefire-plugin< / artifactId>
< version> $ {surefire.plugin.version}< / version>
< configuration>

<! - 用于JaCoCo插件 - >
< argLine> $ {surefireArgLine}< / argLine>

<! - 用于SonarQube分析 - >
< reportsDirectory> ../ target / surefire-reports< / reportsDirectory>

< / configuration>
< / plugin>

在子pom中,我想在构建路径中排除javaee-api.jar测试范围如下所示。

 < plugin> 
< groupId> org.apache.maven.plugins< / groupId>
< artifactId> maven-surefire-plugin< / artifactId>
< configuration combine.self =override>
< classpathDependencyExcludes>
< classpathDependencyExclude> javax:javaee-api< / classpathDependencyExclude>
< / classpathDependencyExcludes>
< / configuration>
< / plugin>

但是javaee-api.jar仍在类路径中显示。有什么想法?


ons-collections4 \\\ commons-collections4-4.1.jar,C:\ Users \ yy2944。 m2\repository\commons-dbutils \ commons-dbutils \1.6 \ commons-dbutils-1.6.jar,C:\ Users \y2944.m2 \ storage\\ log4j \ log4j \ 1.2。 17 \log4j-1.2.17.jar,C:\ Users \y2944.m2 \repository\javax\faces
\ ujaxax.faces-api \2.1 \ javax.faces- api-2.1.jar,C:\ Users \y2944.m2 \repository\javax\servlet\javax.servlet-api \3.0.1 \ javaavax.servlet-api-3.0.1.jar ,C:\ Users \y2944.m2 \repository\com\csx\services\xx\\\
as-engine-api \1.1.0\\\
as-engine-api-1.1.0。 jar,C:\ Users \ y
2944.m2 \ storage >> javax\javaee-api \ 7.0.0 ** \ java-api-7.0.jar,C:\ Users \ y2944.m2\repository\com\sun\mail\javax.mail\1​​.5.0\javax.mail-1.5.0.jar,C:\ U sers\y2944.m2\repository\javax\activation\activation\1.1\activation-1.1.jar,C:\ Users \y2944.m2 \ reposi
tory\org \ apache \ commons\commons-lang3 \3.1 \ commons-lang3-3.1.jar,C:\ Users \y2944.m2 \repository\commons-io \ commons-io \1.3 .2\commons-io-1.3.2.jar,C:\ Users \y2944.m2 \ deposit \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ,C:\ Users \y2944.m2 \
repository\org\apache\poi\poi-ooxml\3.10.1\poi-ooxml-3.10.1.jar,C :\ Users\y2944.m2 \ storage \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ mempository\org\apache\poi\poi-ooxml-schemas\3.10.1\poi-ooxml-schemas-3.10.1.jar,C:\ Users \y294
4 .m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0 \ xmlbeans-2.6.0.jar,C:\ Users \y2944.m2 \ deposit \\\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar,C:\ Users \\ \\ yy2944.m2 \ storage \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
m2 \repository\org\apache \ xmlbeans \ xmlbeans-xmlpublic \2.6.0 \ xmlbeans-xmlpublic-2.6.0.jar]



解决方案

这是javaee-api.jar的问题,只有接口,没有实现。排除不起作用。所以我在测试范围上添加了实现。

 < dependency> 
< groupId> org.glassfish< / groupId>
< artifactId> javax.faces< / artifactId>
< version> 2.3.3< / version>
< scope> test< / scope>
< / dependency>`


I have a plugin in the parent pom with the below code:

        <!-- Test Plugin -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${surefire.plugin.version}</version>
      <configuration>

        <!-- Used for JaCoCo Plugin -->
        <argLine>${surefireArgLine}</argLine>

        <!-- Used for SonarQube Analysis -->
        <reportsDirectory>../target/surefire-reports</reportsDirectory>

      </configuration>
    </plugin>

The in the child pom, I want to exclude the javaee-api.jar in the build path of test scope as below shows.

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration combine.self="override">
              <classpathDependencyExcludes>
                <classpathDependencyExclude>javax:javaee-api</classpathDependencyExclude>
              </classpathDependencyExcludes>
            </configuration>
          </plugin> 

But the javaee-api.jar is still showing in the classpath. Any thought?

ons-collections4\4.1\commons-collections4-4.1.jar, C:\Users\y2944.m2\repository\commons-dbutils\commons-dbutils\1.6\commons-dbutils-1.6.jar, C:\Users\y2944.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar, C:\Users\y2944.m2\repository\javax\faces \javax.faces-api\2.1\javax.faces-api-2.1.jar, C:\Users\y2944.m2\repository\javax\servlet\javax.servlet-api\3.0.1\javax.servlet-api-3.0.1.jar, C:\Users\y2944.m2\repository\com\csx\services\xx\nas-engine-api\1.1.0\nas-engine-api-1.1.0.jar, C:\Users\y 2944.m2\repository**javax\javaee-api\7.0**\javaee-api-7.0.jar, C:\Users\y2944.m2\repository\com\sun\mail\javax.mail\1.5.0\javax.mail-1.5.0.jar, C:\Users\y2944.m2\repository\javax\activation\activation\1.1\activation-1.1.jar, C:\Users\y2944.m2\reposi tory\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar, C:\Users\y2944.m2\repository\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar, C:\Users\y2944.m2\repository\org\primefaces\primefaces\6.0.18\primefaces-6.0.18.jar, C:\Users\y2944.m2\ repository\org\apache\poi\poi-ooxml\3.10.1\poi-ooxml-3.10.1.jar, C:\Users\y2944.m2\repository\org\apache\poi\poi\3.10.1\poi-3.10.1.jar, C:\Users\y2944.m2\repository\org\apache\poi\poi-ooxml-schemas\3.10.1\poi-ooxml-schemas-3.10.1.jar, C:\Users\y294 4.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar, C:\Users\y2944.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar, C:\Users\y2944.m2\repository\org\apache\xmlbeans\xmlbeans-qname\2.6.0\xmlbeans-qname-2.6.0.jar, C:\Users\y2944. m2\repository\org\apache\xmlbeans\xmlbeans-xmlpublic\2.6.0\xmlbeans-xmlpublic-2.6.0.jar]

解决方案

It's the issue with javaee-api.jar with interface only, no implementation. And the exclusion didn't work. So I added the implementation on the test scope.

   <dependency>
      <groupId>org.glassfish</groupId>
      <artifactId>javax.faces</artifactId>
      <version>2.3.3</version>
      <scope>test</scope>
    </dependency>`

这篇关于maven插件覆盖不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆