尝试在Cygwin环境中构建多模块Maven项目时出现上述编译错误。打破构建的特定模块是一个Web服务API,它依赖于jaxb-api绑定来执行Java对象到XML元素的映射。这是正在生成的特定错误:
[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目上编译(默认编译)ASRB2CServices:编译失败:编译失败: [错误] 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;
我正在使用maven java编译器插件的3.1版本:
<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编译器插件。任何人都可以提供的任何见解都将非常赞赏
答案 0 :(得分:1)
我终于找到了问题所在。显然,这是一个编译器错误。我使用的是与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>
感谢那些看过我问题的人。
答案 1 :(得分:0)
您正在使用该文件
com/rccl/services/v1/commontypes/package-info.java
用于注释包
com.rccl.pcp.api.v1.pricetypes
假设你的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.services.v1.commontypes;