Maven clean插件不包括.cvsignore

时间:2011-04-27 08:45:48

标签: maven cvs jenkins

在我的项目中,我最初犯了一个错误,并在cvs存储库中提交了目标目录;我知道没有安全的方法从CVS中删除目录,所以我在那里放了一个.cvsignore文件基本上忽略了所有内容(我不希望开发人员甚至无法正确合并以提交他们的类......)

问题在于我的詹金斯CI,因为我运行干净和测试目标;基本上干净是在CVS更新之前运行的,所以它总是找到要更新的文件(已经被干净擦除的.cvsignore)并触发一个经常无用的构建。

我认为可行的方法是使用排除,但我尝试过但不起作用:

[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting file set: **************************/target (included: [**], excluded: [])

排除配置为:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <executions>
        <execution>
            <id>not-clean</id>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>target</directory>
                        <excludes>
                            <exclude>*cvsignore</exclude>
                        </excludes>
                        <followSymlinks>false</followSymlinks>
                    </fileset>
                </filesets>
            </configuration>
            <phase>initialize</phase>
            <goals>
                <goal>clean</goal>
            </goals>
        </execution>
    </executions>
</plugin>

1 个答案:

答案 0 :(得分:4)

您可以尝试将<excludeDefaultDirectories>设置为true,否则,我相信target文件夹将始终被删除。

以下代码段对我有用。请注意,我使用default-clean作为id

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.4.1</version>
            <executions>
                <execution>
                    <id>default-clean</id>
                    <configuration>
                        <excludeDefaultDirectories>true</excludeDefaultDirectories>
                        <filesets>
                            <fileset>
                                <directory>target</directory>
                                <excludes>
                                    <exclude>.cvsignore</exclude>
                                    <exclude>CVS</exclude>
                                    <exclude>CVS/**</exclude>
                                </excludes>
                                <followSymlinks>false</followSymlinks>
                            </fileset>
                        </filesets>
                    </configuration>
                    <phase>initialize</phase>
                    <goals>
                        <goal>clean</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>