5

我有一个专家问题。

我有一个 GWT 项目,它生成一个临时目录 gwt-unitCache 文件夹。我想在构建过程结束时将其删除。

我有这个插件配置:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>src/main</directory>
                <includes>
                    <directory>gwt-unitCache/**</directory>
                </includes>
                <followSymlinks>false</followSymlinks>
            </fileset>
        </filesets>
    </configuration>
    <executions>
        <execution>
            <id>gwt-unitCache</id>
            <phase>install</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
        </execution>
    </executions>
</plugin>

这通过删除 src/main 下自动生成的 gwt-unitCache 文件夹来完成其工作。但是,它也删除了包含类和战争文件的目标文件夹。

我不希望删除目标文件,因此我通过删除部分修改了配置:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>src/main</directory>
                <includes>
                    <directory>gwt-unitCache/**</directory>
                </includes>
                <followSymlinks>false</followSymlinks>
            </fileset>
        </filesets>
    </configuration>
    <executions>
        <execution>
            <id>gwt-unitCache</id>
            <phase>install</phase>
        </execution>
    </executions>
</plugin>

但这一次它不再起作用了。gwt-unitCache 不会被删除。看起来插件是在构建过程的开始而不是结束时运行的。

我不擅长 Maven。有人可以帮忙吗?我该如何配置它以便:

  1. gwt-unitCache 在构建过程结束时被删除。
  2. 不会删除目标文件夹。

我使用命令:maven clean install

建造它。

非常感谢。

4

3 回答 3

6

未经测试,但maven-clean-plugin公开了一个excludeDefaultDirectories可以帮助完成这项工作的方法。就像是:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>src/main</directory>
                <includes>
                    <directory>gwt-unitCache/**</directory>
                </includes>
                <followSymlinks>false</followSymlinks>
            </fileset>
        </filesets>
        <excludeDefaultDirectories>true</excludeDefaultDirectories>
    </configuration>
    <executions>
        <execution>
            <id>gwt-unitCache</id>
            <phase>install</phase>
            <goals>
                <goal>clean</goal>
            </goals>
        </execution>
    </executions>
</plugin>

顺便说一句,我不明白你为什么需要清除这个目录,你不能在你的 SCM 中忽略它吗?

于 2013-03-16T17:11:05.497 回答
0

由于它出现在评论中:您可以像这样更改缓存目录的位置:

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>gwt-maven-plugin</artifactId>

 <configuration>
   <persistentunitcachedir>${project.build.directory}</persistentunitcachedir>
 </configuration>
</plugin>
于 2020-10-30T12:38:26.837 回答
0

RC 我使用这个变体在清洁阶段仍然照常工作。

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>gwt-unitCache</id>
            <phase>install</phase>
            <goals>
                <goal>clean</goal>
            </goals>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>${project.build.directory}/${project.build.finalName}/c</directory>
                        <includes>
                            <directory>gwt-unitCache/**</directory>
                        </includes>
                        <followSymlinks>false</followSymlinks>
                    </fileset>
                </filesets>
                <excludeDefaultDirectories>true</excludeDefaultDirectories>
            </configuration>
        </execution>
    </executions>
</plugin>
于 2017-01-13T18:14:51.557 回答