【发布时间】:2019-03-20 15:46:34
【问题描述】:
我正在使用 jaxb2-annotate-plugin 将项目 lombok 注释添加到我生成的 java 代码中。在某些情况下,插件会向注释添加可选的(在这种情况下是实验性的)额外信息。
注解类是lombok.NoArgsConstructor,有可选的实验参数onConstructor
典型和预期的输出应该是:
@NoArgsConstructor
public class Foo ...
但我得到的是
@NoArgsConstructor(onConstructor = {
})
public class Foo ...
我不想要添加的参数(不确定正确的术语是什么),此外,它是不正确的,因为它需要额外的信息,在这种情况下,注释要添加到生成的构造函数。
所以 2 个问题:
如何隐藏这些添加的信息?
如果我确实想要这个添加的参数,我将如何添加必要的附加信息?
谢谢, 莱纳斯
ps。 作为与问题没有直接关系的旁白:这个插件对我来说是新的。我已经从提供的示例之一修改了 build.xml 文件,以通过 ant 使用插件运行 xjc。虽然正确生成了代码,但输出似乎另有说明。详细的 ant 输出如下。 build.xml 文件来自 jaxb2-annotate-plugin-master/samples/annotate/target/test-ant-assembly/jaxb2-annotate-plugin-sample-annotate-1.1.1-SNAPSHOT/
ant -verbose generate-sources JAVA_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
2017 年 2 月 2 日编译的 Apache Ant(TM) 版本 1.10.1 默认构建文件:build.xml 构建文件: /Users/kamb/workspace/oads_xml/versions/a0.2/build.xml 检测到 Java 版本:1.8 在: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
检测到的操作系统:Mac OS X 解析构建文件 /Users/kamb/workspace/oads_xml/versions/a0.2/build.xml 与 URI = 文件:/Users/kamb/workspace/oads_xml/versions/a0.2/build.xml 项目 基本目录设置为:/Users/kamb/workspace/oads_xml/versions/a0.2
解析构建文件 jar:file:/opt/local/apache-ant-1.10.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml 与 URI = jar:file:/opt/local/apache-ant-1.10.1/lib/ant.jar!/org/apache/tools/ant/antlib.xml 从 zip 文件 [属性] 加载环境 env。覆盖 忽略属性“java.home” 目标的构建序列 `generate-sources' 是 [generate-sources] 完整的构建序列 是[生成源,检查,编译,打包,安装,测试编译, 测试,清洁,]
生成来源:
[xjc] XJC 的 build id 是 2.3.0
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/bindings.xjb 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/commonTypes.xjb 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/person.xjb 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/variables.xjb 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/commonTypes.xsd 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/oads_metadata_a0.2.xsd 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/person.xsd 的时间戳
[xjc] 检查 /Users/kamb/workspace/oads_xml/versions/a0.2/variables.xsd 的时间戳
[xjc] 输入的最后修改时间为 1553044581000
[xjc] 输出的最后修改时间是-9223372036854775808
[xjc] 考虑使用 / 这样 XJC 就不会做不必要的编译
[xjc] 编译文件:/Users/kamb/workspace/oads_xml/versions/a0.2/commonTypes.xsd 和 其他
[xjc] 将输出写入 /Users/kamb/workspace/oads_xml/versions/a0.2/gen_src
[xjc] Command invoked: xjc/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/bin/java
[xjc] failure in the XJC task. Use the Ant -verbose switch for more details
/Users/kamb/workspace/oads_xml/versions/a0.2/build.xml:106: xjc failed
at com.sun.tools.xjc.XJCBase.execute(XJCBase.java:731) at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:55) at org.jvnet.jaxb2_commons.xjc.XJC2Task.execute(XJC2Task.java:35) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:435) at org.apache.tools.ant.Target.performTasks(Target.java:456) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) at org.apache.tools.ant.Project.executeTarget(Project.java:1376) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1260) at org.apache.tools.ant.Main.runBuild(Main.java:857) at org.apache.tools.ant.Main.startAnt(Main.java:236) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:287) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:113)
【问题讨论】:
标签: java lombok xjc jaxb2-annotate-plugin