有什么方法可以 运行 为特定配置文件清理自定义 maven 吗?
Is there any way to run a custom maven clean just for a specific profile?
所以,我有一个 Maven 配置文件,它为我的 JPA 实体(ClassName.java)生成我的 StaticMetaModel(ClassName_.java)类。
然后,我定义了我的 maven-clean-plugin 来删除那些生成的 类 每次我 运行 mvn clean.
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*_.java</include>
</includes>
</fileset>
<filesets>
</configuration>
</plugin>
这是生成元模型的配置文件。
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src/main/java/</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</plugin>
一切都按预期工作,但是当我想 运行 其他配置文件时,我希望 maven clean 以正常配置执行(不删除那些生成的 类)。 有没有什么办法可以有两种清理项目的方法和运行仅针对生成配置文件的自定义方法?
我使用@Tunaki 的建议设法解决了它。所以谢谢。这是我的解决方案。
在插件部分,我没有改变 maven-clean-plugin。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
然后,在配置文件部分,我在新的 src-gen/main/java 文件夹中定义了我的生成配置文件以生成源代码。我需要先删除生成的源,所以我为这个配置文件配置了 clean 插件来删除 src-gen 文件夹。
<profile>
<id>hibernate-processor</id>
<properties>
<environment.id>hibernate-processor</environment.id>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>src-gen</directory>
<includes>
<include>**/*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src-gen/main/java</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
之后,我使用 build-helper-maven-plugin 添加了 src-gen/main/java 作为源文件夹,如@Tunaki 所说。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src-gen/main/java/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
最后,我只需配置 maven-compiler-plugin 即可编译 src-gen/main/java 文件夹中的 .java 文件。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src-gen/main/java/**/*.java</include>
</includes>
</configuration>
</configuration>
</plugin>
所以,我有一个 Maven 配置文件,它为我的 JPA 实体(ClassName.java)生成我的 StaticMetaModel(ClassName_.java)类。
然后,我定义了我的 maven-clean-plugin 来删除那些生成的 类 每次我 运行 mvn clean.
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*_.java</include>
</includes>
</fileset>
<filesets>
</configuration>
</plugin>
这是生成元模型的配置文件。
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src/main/java/</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</plugin>
一切都按预期工作,但是当我想 运行 其他配置文件时,我希望 maven clean 以正常配置执行(不删除那些生成的 类)。 有没有什么办法可以有两种清理项目的方法和运行仅针对生成配置文件的自定义方法?
我使用@Tunaki 的建议设法解决了它。所以谢谢。这是我的解决方案。
在插件部分,我没有改变 maven-clean-plugin。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
然后,在配置文件部分,我在新的 src-gen/main/java 文件夹中定义了我的生成配置文件以生成源代码。我需要先删除生成的源,所以我为这个配置文件配置了 clean 插件来删除 src-gen 文件夹。
<profile>
<id>hibernate-processor</id>
<properties>
<environment.id>hibernate-processor</environment.id>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>src-gen</directory>
<includes>
<include>**/*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src-gen/main/java</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
之后,我使用 build-helper-maven-plugin 添加了 src-gen/main/java 作为源文件夹,如@Tunaki 所说。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src-gen/main/java/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
最后,我只需配置 maven-compiler-plugin 即可编译 src-gen/main/java 文件夹中的 .java 文件。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src-gen/main/java/**/*.java</include>
</includes>
</configuration>
</configuration>
</plugin>