我们的项目使用XJC从XSD生成Java类。我使用的是JAVA EE 6。
当我们拥有的所有XSD都重新生成时,生成的类在文件的顶部包含以下注释:
// Generated on: 2011.02.23 at 02:17:06 PM GMT
有没有可能抑制这条评论?原因是我们使用SVN进行版本控制,并且每次我们重新生成类时,每个单独的文件在SVN中显示为已更改,即使唯一不同的是此注释。因此,如果可能的话,我想完全删除评论。
有一个-no-header
指令,但我不想删除整个头文件,这样后代就知道它是由工具生成的文件,修改将被覆盖。我只想删除时间戳。(或者,我会删除内置的头部,然后以某种方式插入我自己的头部。)
发布于 2011-02-24 00:16:56
如果不能使用某个选项,您可以自己对生成的文件进行后处理。对于一个非常具体的用例,我们必须在我们的项目中这样做……我们使用Maven,并在生成Java类之后执行特定的脚本,然后将其编译并打包到可分发的JAR中。
发布于 2011-08-23 19:45:13
我正在使用这个Maven插件,它取代了// Generated on: 2011.02.23 at 02:17:06 PM GMT
行:
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.3.8</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>src/main/java/jaxb/*.java</include>
</includes>
<token>^// Generated on.*$</token>
<value>// Generated on: [TEXT REMOVED by maven-replacer-plugin]</value>
<regexFlags>
<regexFlag>MULTILINE</regexFlag>
</regexFlags>
</configuration>
</plugin>
发布于 2017-07-25 17:30:34
我来晚了,但是从jaxb2-maven-plugin
的2.0版本开始,就有了noGeneratedHeaderComments
配置选项。(请参阅JAXB-2 Maven Plugin Docs)
你可以这样使用它:
...
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<target>2.1</target>
<sources>
<source>FirstXSD.xsd</source>
<source>SecondXSD.xsd</source>
</sources>
<xjbSources>
<xjbSource>OptionalBindings.xjb</xjbSource>
</xjbSources>
<noGeneratedHeaderComments>true</noGeneratedHeaderComments>
</configuration>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>${jaxb.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
...
因此不需要运行另一个插件或脚本。
如果你想保留免责声明,你可以使用已经提到的技术之一在需要的地方注入它。
https://stackoverflow.com/questions/5093514
复制相似问题