Maven测试具有JavaEE6依赖关系的SOAP的问题

Maven测试具有JavaEE6依赖关系的SOAP的问题,maven,soap,java-ee-6,Maven,Soap,Java Ee 6,在maven项目的测试中尝试使用SOAP时,我发现了一些问题,该项目将JavaEE6API作为提供的作用域依赖项 重要事实 我知道 我知道如果我想使用它,我应该导入任何规范的实现 ,不是EE SOAP模拟类包含在中,我认为它们不应该包含在中 这在JavaEE6中发生,但是 如果我删除依赖项,测试就可以正常工作 当使用7.0版本的API时,一切正常 例外情况 聚甲醛构型 失败的解决方案 我已经尝试了几种解决方案,为了清晰起见,我不会一一发布,但会根据要求发布: 我已经在Maven中尝试了每一种方法

在maven项目的测试中尝试使用SOAP时,我发现了一些问题,该项目将JavaEE6API作为提供的作用域依赖项

重要事实

我知道 我知道如果我想使用它,我应该导入任何规范的实现 ,不是EE SOAP模拟类包含在中,我认为它们不应该包含在中 这在JavaEE6中发生,但是 如果我删除依赖项,测试就可以正常工作 当使用7.0版本的API时,一切正常 例外情况

聚甲醛构型

失败的解决方案

我已经尝试了几种解决方案,为了清晰起见,我不会一一发布,但会根据要求发布:

我已经在Maven中尝试了每一种方法,但没有一种方法在测试中禁用该库 另外,尝试将库作为插件的依赖项排除 将rj.jar作为一个优先级高于javaeeapi的系统依赖项也不起作用 不必要的变通办法


我使用7.0依赖项进行了测试,但根据策略,这是不可接受的,因此我需要修复此问题。

我使用maven surefire插件的属性classpathDependencyExcludes使其正常工作:


我将把这篇文章留在这里,因为我相信我不会是唯一一个在某个时候遇到这种情况的人。

在运行java类时,我遇到了与下面相同的问题。 例外情况: java.lang.ClassFormatError:类文件javax/xml/messaging/urlenpoint中非本机或抽象的方法中缺少代码属性

使用Java8作为运行时,我最终包含了正确的版本7.0,并且程序在使用版本6之前就开始正常工作

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>

奇怪的是,经过几个小时的努力,我是如何在10分钟内找到自己的解决方案的,可能只是因为写下这个问题,让我的头脑冷静下来,让一切都恢复正常。
<dependencies>
  ...
  <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
  </dependency>
  ...
</dependencies>

<build>
  ...
  <plugins>
    ...
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.17</version>
      ...
    </plugin>
    ...
  </plugins>
  ...
</build>
<build>
  ...
  <plugins>
    ...
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.17</version>
      ...
      <configuration>
        <classpathDependencyExcludes>
          <classpathDependencyExcludes>javax:javaee-api</classpathDependencyExcludes>
        </classpathDependencyExcludes>
        ...
      </configuration>
      ...
    </plugin>
    ...
  </plugins>
  ...
</build>
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>