[英]“org.jvnet.jaxb2.maven2” maven plugin showed error in eclipse
[英]org.jvnet.jaxb2.maven2:maven-jaxb2-plugin : same file , multiples results
我正在使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
版本中的org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
,但存在以下问题。
我从xsd文件生成Java文件。
我提交并将其推送到我们的git存储库中。
我再次启动同一代(我们使用removeOldOutput
选项)。
对于某些文件,git正在检测某些更改,因为某些注释的顺序在2代之间是不同的。
第一代的一部分:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Software", propOrder = {
"rest"
})
public abstract class Software
extends SoftwareResource
implements Serializable
{
private final static long serialVersionUID = 1L;
@XmlElementRefs({
@XmlElementRef(name = "resource", type = JAXBElement.class),
@XmlElementRef(name = "software", type = JAXBElement.class),
@XmlElementRef(name = "swapSpaceUsedCurrent", type = JAXBElement.class),
@XmlElementRef(name = "isUTCTime", type = JAXBElement.class),
@XmlElementRef(name = "lastStartTime", type = JAXBElement.class),
@XmlElementRef(name = "serialNumber", type = JAXBElement.class),
@XmlElementRef(name = "numberProcessesActiveCurrent", type = JAXBElement.class),
@XmlElementRef(name = "pagingFileSizeCurrent", type = JAXBElement.class),
@XmlElementRef(name = "processMemorySizeCurrent", type = JAXBElement.class),
@XmlElementRef(name = "numUsersCurrent", type = JAXBElement.class)
})
protected List<JAXBElement<? extends Serializable>> rest;
/**
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link Resource }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link Software }{@code >}
* {@link JAXBElement }{@code <}{@link Boolean }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link Quantity }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link Quantity }{@code >}
*
*
*/
public List<JAXBElement<? extends Serializable>> getRest() {
if (rest == null) {
rest = new ArrayList<JAXBElement<? extends Serializable>>();
}
return this.rest;
}
}
第二代的相同部分:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Software", propOrder = {
"rest"
})
public abstract class Software
extends SoftwareResource
implements Serializable
{
private final static long serialVersionUID = 1L;
@XmlElementRefs({
@XmlElementRef(name = "numUsersCurrent", type = JAXBElement.class),
@XmlElementRef(name = "serialNumber", type = JAXBElement.class),
@XmlElementRef(name = "processMemorySizeCurrent", type = JAXBElement.class),
@XmlElementRef(name = "swapSpaceUsedCurrent", type = JAXBElement.class),
@XmlElementRef(name = "pagingFileSizeCurrent", type = JAXBElement.class),
@XmlElementRef(name = "lastStartTime", type = JAXBElement.class),
@XmlElementRef(name = "numberProcessesActiveCurrent", type = JAXBElement.class),
@XmlElementRef(name = "resource", type = JAXBElement.class),
@XmlElementRef(name = "isUTCTime", type = JAXBElement.class),
@XmlElementRef(name = "software", type = JAXBElement.class)
})
protected List<JAXBElement<? extends Serializable>> rest;
/**
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link Quantity }{@code >}
* {@link JAXBElement }{@code <}{@link String }{@code >}
* {@link JAXBElement }{@code <}{@link Quantity }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
* {@link JAXBElement }{@code <}{@link Boolean }{@code >}
* {@link JAXBElement }{@code <}{@link Resource }{@code >}
* {@link JAXBElement }{@code <}{@link Software }{@code >}
*
*
*/
public List<JAXBElement<? extends Serializable>> getRest() {
if (rest == null) {
rest = new ArrayList<JAXBElement<? extends Serializable>>();
}
return this.rest;
}
}
为什么此注释在2代之间顺序不同? 有办法订购吗?
谢谢 !
这里是maven-jaxb2-plugin
作者。
首先,亚历山大·M非常正确。 生成的代码通常不检入SCM。 整个target
目录在git
无关。
接下来,由maven-jaxb2-plugin
调用的JAXB模式编译器(XJC)是不确定的,因此不能保证所生成的源代码在不同代码代之间是相同的。 这绝对不是maven-jaxb2-plugin
,我也不会在XJC中将其称为错误。 降低您的期望,不要期望两次运行之间使用相同的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.