maven - 使用 javaee-api 版本 6 提供的范围会导致 wsgen 在 Maven 中失败

标签 maven java-ee-6 wsgen

我使用 jaxws-maven-plugin 中的 wsgen 从我的 @WebService java 类(从 Java 开始)生成 Web 服务 Artifact 。我的 Web 服务类注入(inject)了一个 @EJB。我已将 javaee-api 版本 6 作为依赖项包含在内。

一切都工作正常,直到我将 javaee-api 范围更改为提供。如果我不这样做,javaee-api.jar 就会包含在我的 .war 文件中,这是我不想要的。

使用提供的不会导致编译失败。 Someone else noticed this但不在 Maven 中。

这是我的 pom.xml 中的相关部分。

谢谢。

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>jaxws-maven-plugin</artifactId>
      <version>1.12</version>
      <executions>
        <execution>
          <goals>
            <goal>wsgen</goal>
          </goals>
          <configuration>
            <sei>com.co.report.reports.ws.server.ReportService</sei>
            <genWsdl>false</genWsdl>
            <keep>true</keep>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
<dependencies>
  <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <!--   Setting <scope>provided</scope> causes compile failure -->
    <scope>provided</scope>
  </dependency>

最佳答案

添加 javax:javaee-api:6.0 作为插件本身的依赖项。

您可以添加 <dependencies> <plugin> 内的标签标签。

请参阅POM reference了解更多详情。

关于maven - 使用 javaee-api 版本 6 提供的范围会导致 wsgen 在 Maven 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421898/

相关文章:

使用 Maven 配置文件选择的 Java 切换

java - 使用 java 6 编译时不支持 Major.minor 版本 51.0

java - 如何通过wsgen生成wsdl作为ant任务

maven - Gradle下载依赖错误

maven - 如何使用 maven 为 Javafx 应用程序及其依赖的 jar 创建可执行 jar?

mysql - 我可以在实体类中定义关系而不将它们存储在数据库中吗?

java - Maven ojdbc jar依赖报错: package oracle. jdbc不存在

java - 如何从 Java EE 6 中的 JPA2 EntityManager 获取数据源或连接

web-services - wsgen/apt(ant 任务)工具的最佳替代方法是使用 ant for jdk 1.8 生成 wsdl

java - wsgen 使用 @WebMethod 生成 WSDL 但忽略 @WebParam