forked from roborescue/rcrs-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-findbugs.xml
54 lines (50 loc) · 2.48 KB
/
build-findbugs.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<project>
<property name="findbugs.output.format" value="html"/>
<property name="findbugs.version" value="1.3.8"/>
<property name="findbugs.output.dir" value="${build.dir}/findbugs-results"/>
<property name="findbugs.home" value="${buildtools.dir}/findbugs-${findbugs.version}"/>
<!-- Findbugs task definition -->
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.home}/lib/findbugs-ant.jar"/>
<target name="_init-findbugs">
<mkdir dir="${findbugs.output.dir}"/>
</target>
<target name="findbugs" depends="jars,_init-findbugs, _generate-findbugs-fileset" description="Run Findbugs on all modules">
<!-- Collate all findbugs exclude filters -->
<concat destfile="${findbugs.output.dir}/exclude-fragments.xml">
<header><fragments></header>
<footer></fragments></footer>
<fileset dir="${basedir}" includes="findbugs-filter-base.xml"/>
<fileset refid="findbugs.filters"/>
</concat>
<xslt style="${buildtools.dir}/findbugs-collate.xsl" in="${findbugs.output.dir}/exclude-fragments.xml" out="${findbugs.output.dir}/exclude.xml">
<outputproperty name="method" value="xml"/>
<outputproperty name="indent" value="yes"/>
</xslt>
<findbugs home="${findbugs.home}" output="${findbugs.output.format}" outputFile="${findbugs.output.dir}/findbugs_errors.${findbugs.output.format}" excludeFilter="${findbugs.output.dir}/exclude.xml" jvmargs="-Xmx1024m">
<fileset refid="findbugs.jars"/>
</findbugs>
</target>
<target name="_generate-findbugs-fileset">
<script language="javascript">
<![CDATA[
importClass(org.apache.tools.ant.types.Path);
importClass(org.apache.tools.ant.types.FileSet);
importClass(java.lang.System);
importClass(java.io.File);
var modules = project.getProperty("modules").split(",");
var jars = new FileSet();
var fragments = new FileSet();
jars.setDir(new File(project.getProperty("jar.dir")));
fragments.setDir(new File(project.getProperty("modules.dir")));
for (var i = 0; i < modules.length; ++i) {
jars.setIncludes(modules[i] + ".jar");
fragments.setIncludes(modules[i] + "/findbugs-filter.xml");
}
project.addReference("findbugs.jars", jars);
project.addReference("findbugs.filters", fragments);
project.setProjectReference(jars);
project.setProjectReference(fragments);
]]>
</script>
</target>
</project>