2
A
回答
4
我已经场景,我产生CXF类时曾经我有在WSDL或WADL变化这样做。因此,我会在需要时明确生成它。因此,我创建了一个独立的配置文件一个新的配置文件cxf-gen以及我通常的dev,uat,syst。它有插件来生成类。总之,当我需要重新生成类时,我切换到配置文件并运行generate-sources。这里是我使用的样本配置文件。
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<envName>dev</envName>
</properties>
</profile>
<profile>
<id>uat</id>
<properties>
<envName>uat</envName>
</properties>
</profile>
<profile>
<id>jaxB-gen</id>
<properties>
<envName>dev</envName>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<!-- CONFIGS ->
</configuration>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>code-gen</id>
<properties>
<envName>dev</envName>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<!-- CONFIGS ->
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- wadl2java Required only when JAXRS classes are to be generated -->
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-wadl2java-plugin</artifactId>
<version>2.7.6</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<!-- CONFIGS ->
</configuration>
<goals>
<goal>wadl2java</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.googlecode.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.3.7</version>
<configuration>
<!-- CONFIGS ->
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
1
这是一个古老的问题,虽然有些答案会以某种方式工作,但都不是理想的。
这个答案并不打破干净的构建:调用“mvn <目标>”仍然产生预期的和向后兼容的结果,这对于持续集成是有利的。此外,这个答案不依赖于将生成的代码提交到版本控制,这是一个坏主意,因为它可能会与源不同步。
我假设生成源阶段绑定到插件目标。
答案是创建一个名为“clean-build”的配置文件,默认情况下它是活动的并包含您的插件绑定。当开发人员相信他们可以安全地跳过生成源时,他们可能会运行以下操作。
mvn -P !clean-build <goal>
或者如果感叹号需要转义。
mvn -P \!clean-build <goal>
这是pom.xml的样子。
<profiles>
<profile>
<id>clean-build</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
...
<executions>
<execution>
...
<phase>generate-sources</phase>
...
</execution>
</executions>
...
</plugin>
</plugins>
</build>
</profile>
</profiles>
此答案需要Maven 2.0.10+。
相关问题
- 1. Maven生成源
- 2. 如何跳过maven集成测试
- 3. 如何跳过由maven-jar-plugin和clasifier生成的jar中的版本
- 4. Maven生成源/注释
- 5. 多个maven生成源
- 6. 从maven源生成过滤的资源:jar执行
- 7. maven WAR插件跳过资源?
- 8. 如何跳过超类表的模式生成? Java/JPA/Hibernate/Annotations/Maven/hbm2ddl
- 9. 如何使用Maven中的源代码生成WAR?
- 10. 如何使用Maven中的源代码生成JAR
- 11. 如何在Maven中为生成的源创建文件夹?
- 12. 在休眠中跳过生成的值
- 13. Maven生成源始终成功
- 14. 如何在eclipse中使用maven生成querydsl源代码
- 15. Maven的生成资源插件
- 16. Maven的不执行生成资源
- 17. Maven生成的源文件夹文件
- 18. 通过Maven生成UUID
- 19. 如何用maven生成hibernate.cfg.xml(hibernate3-maven-plugin)?
- 20. Maven跳过编译
- 21. 如何跳过在Maven回购
- 22. JBehave&Maven - 如何跳过场景测试
- 23. 生成Java源代码和跳转
- 24. maven:如何添加编译阶段后生成的资源
- 25. Maven:如何处理生成的测试源(仅)?
- 26. Maven从生成的资源生成zip文件
- 27. 跳过Maven的Flex的PMD
- 28. 如何在Elasticsearch中生成查询并跳过部分查询?
- 29. JOOQ:在Eclipse中使用maven生成源代码不会生成任何文件
- 30. 如何跳过多生成模块中的生命周期阶段
为什么你想这样做?这个阶段有什么约束?显示你的pom文件? – khmarbaise
我不想重新创建源文件,因为文件中没有模式更改 – kuhajeyan
只是一个示例,您可以使用类似的机制... –