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
只是一個示例,您可以使用類似的機制... –