Как пропустить генерируемые исходники в Maven
Есть ли способ пропустить генерировать-источники в Maven?
Делать это через параметры командной строки
2 ответа
Этот параметр командной строки должен работать, если вы используете maven-source-plugin
(работает с Maven 3.6.0):-Dmaven.source.skip=true
У меня есть сценарий, в котором я генерирую классы 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>
Это старый вопрос, и хотя некоторые ответы как-то сработают, ни один из них не идеален.
Этот ответ не нарушает чистую сборку: вызов 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+.