ch.hortis.sonar.mvn.reports.CheckstyleHandler Maven / Gradle / Ivy
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.hortis.sonar.mvn.reports;
import ch.hortis.sonar.mvn.PomUtils;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.project.MavenProject;
import java.util.*;
public class CheckstyleHandler extends ReportHandler {
public void configurePlugin( MavenProject pom, Plugin plugin ) {
unsetConfigParameter( plugin, "outputDirectory" );
unsetConfigParameter( plugin, "outputFile" );
setConfigParameter( plugin, "outputFileFormat", "xml" );
setConfigParameter( plugin, "consoleOutput", "false" );
setConfigParameter( plugin, "enableRSS", "false" );
setConfigParameter( plugin, "failsOnError", "false" );
setConfigParameter( plugin, "linkXRef", "false" );
copyPluginDependencies(pom, plugin);
}
public List getGoals() {
return Arrays.asList( new String[]{"checkstyle"} );
}
public boolean mustFailOnError() {
return true;
}
/**
* Example from the mule project (http://mule.codehaus.org/display/MULE/Home).
* Checkstyle configuration file is defined in a dependency :
*
org.apache.maven.plugins
maven-checkstyle-plugin
org.mule
mule-buildtools
${version}
* and the configuration is in the reporting node :
...
org.apache.maven.plugins
maven-checkstyle-plugin
codecheck/checkstyle.xml
codecheck/LICENSE.txt
...
*
*
*
*
*
*/
private void copyPluginDependencies(MavenProject pom, Plugin plugin) {
HashSet depKeys = new HashSet();
Collection checkstylePlugins = PomUtils.findPluginDefinitions(pom, getReport().getGroupId(), getReport().getArtifactId());
for (Plugin ckPlugin : checkstylePlugins) {
if ( ckPlugin.getDependencies()!=null ) {
if ( plugin.getDependencies()==null ) {
plugin.setDependencies( new ArrayList() );
}
for (Dependency dependency : (Collection)ckPlugin.getDependencies()) {
String depArtifactId = dependency.getArtifactId();
if ( ! depKeys.contains( depArtifactId ) ) {
depKeys.add( depArtifactId );
plugin.getDependencies().add( dependency );
}
}
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy