尝试在 Cygwin 环境中构建多模块 Maven 项目时,出现上述编译错误。破坏构建的特定模块是一个 Web 服务 API,它依赖 jaxb-api 绑定(bind)来执行 Java 对象到 XML 元素的映射。这是正在生成的特定错误:
[错误] 无法在项目 ASRB2CServices 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile): 编译失败: 编译失败: [错误] C:/IBM/RAD/workspace/XForm_Maven/XForm_Maven_20130610/ASRB2CServices/src/main/java/com/rccl/pcp/api/v1/pricetypes/package-info.java:[1,146] 包注释应位于文件 package-info.java
中以下是它所提示的文件的内容:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://api.pcp.rccl.com/v1/priceTypes", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.rccl.pcp.api.v1.pricetypes;
我使用的是3.1版本的maven java编译器插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<fork>true</fork>
<executable>${java.home}/bin/javac</executable>
</configuration>
</plugin>
我使用的是 2.2.6 版本的 jaxb-api 和 2.2.5 版本的 jaxb-impl:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.5</version>
</dependency>
我不知道为什么会收到此错误。我做了一些谷歌搜索,我看到提到了可能的编译器错误,但我相信我正在使用最新版本的 Maven 编译器插件。任何人都可以提供的任何见解将非常感激
最佳答案
我终于找到问题所在了。显然,这是一个编译器错误。我使用的是与 IBM RAD/WebSphere 捆绑在一起的 Java 运行时附带的编译器之一。这是在我的 Maven settings.xml 文件中设置的:
<java.home>/Program Files (x86)/IBM/SDP/runtimes/base_v61/java</java.home>
当我将其更改为不同的 JDK 时,它起作用了:
<java.home>/Program Files (x86)/Java/jdk1.6.0_34</java.home>
感谢那些看我问题的人。
关于java - 包注释应该位于文件 package-info.java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177821/