有什么方法可以 运行 为特定配置文件清理自定义 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>