This file is designed for importing into a main build file, and not intended for standalone use. Clover not enabled! You can find the merged Lucene/Solr Clover report in '${clover.report.dir}'. k.startsWith(propPrefix) } .collectEntries{ k, v -> [k.substring(propPrefixLen), v] }; cmdlineProps << project.userProperties.findAll{ k, v -> !k.startsWith('ant.') }; def artifact = NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant'); task.log('Running Maven with props: ' + cmdlineProps.toString(), Project.MSG_INFO); artifact.mvn(pom: properties['maven-build-dir']+'/pom.xml', mavenVersion: properties['maven-version'], failonerror: true, fork: true) { cmdlineProps.each{ k, v -> arg(value: '-D' + k + '=' + v) }; arg(value: '-fae'); arg(value: 'install'); }; ]]> '.' + file.getAbsolutePath().substring(baseLen).replace(File.separatorChar, (char)'/'); } Set missingProps = new TreeSet(), withKeywords = new TreeSet(), unversioned = new TreeSet(), changed = new TreeSet(); task.log('Getting all versioned and unversioned files...'); statusClient.doStatus(basedir, SVNRevision.WORKING, SVNDepth.fromRecurse(true), false, true, false, false, { status -> SVNStatusType nodeStatus = status.getNodeStatus(); if (nodeStatus == SVNStatusType.STATUS_UNVERSIONED || nodeStatus == SVNStatusType.STATUS_MISSING) { unversioned.add(convertRelative(status.getFile())); } else if (status.getKind() == SVNNodeKind.FILE && nodeStatus != SVNStatusType.STATUS_DELETED) { missingProps.add(convertRelative(status.getFile())); } if (nodeStatus == SVNStatusType.STATUS_MODIFIED || nodeStatus == SVNStatusType.STATUS_REPLACED || nodeStatus == SVNStatusType.STATUS_DELETED || nodeStatus == SVNStatusType.STATUS_ADDED) { changed.add(convertRelative(status.getFile())); } } as ISVNStatusHandler, null); task.log('Filtering files with existing svn:eol-style...'); wcClient.doGetProperty(basedir, 'svn:eol-style', SVNRevision.WORKING, SVNRevision.WORKING, true, { file, prop -> missingProps.remove(convertRelative(file)); } as ISVNPropertyHandler); task.log('Filtering files with binary svn:mime-type...'); wcClient.doGetProperty(basedir, 'svn:mime-type', SVNRevision.WORKING, SVNRevision.WORKING, true, { file, prop -> prop = SVNPropertyValue.getPropertyAsString(prop.getValue()); if (prop.startsWith('application/') || prop.startsWith('image/')) { missingProps.remove(convertRelative(file)); } } as ISVNPropertyHandler); task.log('Scanning for files with svn:keywords property...'); wcClient.doGetProperty(basedir, 'svn:keywords', SVNRevision.WORKING, SVNRevision.WORKING, true, { file, prop -> withKeywords.add(convertRelative(file)); } as ISVNPropertyHandler); def setProjectPropertyFromSet(prop, set) { if (set) { properties[prop] = '* ' + set.join(properties['line.separator'] + '* '); } }; setProjectPropertyFromSet('svn.checkprops.failed', missingProps); setProjectPropertyFromSet('svn.keywords.failed', withKeywords); setProjectPropertyFromSet('svn.unversioned.failed', unversioned); setProjectPropertyFromSet('svn.changed.failed', changed); ]]>