我的 pom 看起来像
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generateDirectory>src/main/java</generateDirectory>
<schemaDirectory>src/main/resources/wsdl/</schemaDirectory>
<schemaIncludes>
<include>*.xsd</include>
<include>draw/*.xsd</include>
</schemaIncludes>
</configuration>
</plugin>
</plugins>
当我做
mvn clean package
它是根据配置构建的。但是,在我构建了一次之后,我不想每次都构建它 mvn clean package
除非 XSD
已被修改。我如何实现这一目标?
最佳答案
此插件中为目标声明的默认阶段 <goal>generate</goal>
是 generate-resources
.引用 Maven 默认生命周期,您不能跳过阶段。 mvn phase-x 命令总是意味着“运行所有阶段直到阶段-x,包括”。
您可以使用的选项是 profile
.因此您可以分析您的项目,以便在生成或不生成资源的情况下进行构建。
例子:
<profiles>
<profile>
<id>GEN-RESOURCES</id>
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generateDirectory>src/main/java</generateDirectory>
<schemaDirectory>src/main/resources/wsdl/</schemaDirectory>
<schemaIncludes>
<include>*.xsd</include>
<include>draw/*.xsd</include>
</schemaIncludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
使用 -P 激活配置文件
mvn clean package -PGEN-RESOURCES
否则不会产生任何东西
Maven 配置文件解释 here
我希望这有帮助。
关于maven - Jaxb2 为每个 mvn clean 包生成类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36862716/