在我的项目中,我最初犯了一个错误,并在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>
答案 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>