【发布时间】:2015-12-23 09:04:16
【问题描述】:
我有一个触发自动生成xsd 和wsdl 类的maven 配置文件,如下所示:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>${cxf-xjc-plugin}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/src/main/java</sourceRoot>
<xsdOptions>
//xsds, wsdls etc
</xsdOptions>
</configuration>
<goals>
<goal>xsdtojava</goal>
</goals>
</execution>
</executions>
</plugin>
生成的类转到:target/generated/src/main/java。
问题:运行“mvn clean package”总是会删除这些类。我该如何预防?除了generated/ 之外,是否可以让clean 删除target 目录的全部内容?
【问题讨论】:
-
为什么要这样做?
clean删除了target目录,Maven 生成的所有东西都应该放在这个目录下,所以一切都像它应该的那样运行。这些类将在下一次构建时重新生成。 -
是的,但是 - 书面 - 我想阻止再生。我有一些很大的 wsdl 文件,并且重新生成需要很长时间。尽管如此,当移动或重命名包时,最终的
war包需要mvn clean,否则目标可能包含旧的编译类。另一种情况是升级了jar依赖项,并且应该删除旧的依赖项。在所有这些情况下,不重新生成 wsdl java 类将节省几分钟,因为它们不是必需的。 -
所以你真正的问题不是“如何使
maven-clean-plugin不删除generated/”而是“我怎样才能避免再生”。这不是同一个问题。例如,这可以通过使用配置文件来完成。你能相应地更新问题吗? -
如果在
clean期间无法保护文件夹,那么是的,这就是我的问题。 -
一气之下,Y turned into X。不错的工作。 :)