Executing SonarLint CLI from within PDSOE
Introduction
Since release 1.9.8 the OpenEdge plugins for SonarSource support execution from SonarLint for CLI. Using the steps described below it is possible to execute SonarLint from Progress Developer Studio - providing a workaround for the not yet available support for SonarLint for Eclipse.
Configuration
sonarlint.p
The procedure Consultingwerk/Studio/SonarLintLauncher/sonarlint.p supports execution of the SonarLint CLI for files currently selected in Progress Developer Studio (a single file or a complete folder with all sub-folders).
The procedure is intended to be launched from a PCTRun task as it's retrieving it's parameters from PCTRun. Supported parameters:
Parameter | Description |
---|---|
sonarlint | Installation Directory of the Sonarlint CLI |
SelectedFile | The full pathname of the selected file or folder - ${selected_resource_loc} |
sourceEncoding | The sourcecodes code page |
dlc | The OpenEdge installation directory |
propath | The PROPATH required to analyze the source |
databases | Comma delimited list of .df files required for analyzing the sourcecoude |
ANT script
An ANT script is required to execute the procedure sonarlint.p via PCTRun.
The sample ANT script needs to be adjusted to match your current environment.
The taskdef reference needs to point to a PCT.jar file (the PCT ANT plugin). The Parameter's section of the PCTRun tag needs to meet the required parameter values of the sonarlint.p procedure (see above).
In this sample script, all parameters are expected to be passed via the ant command line (-D parameters).
<?xml version="1.0" encoding="utf-8"?> <project name="SmartComponent Library" default="SonarSource" basedir="." xmlns:sonar="antlib:org.sonar.ant"> <description>SmartComponent Library</description> <property environment="env" /> <property file="build/build.props" /> <!-- Définition des tâches externes --> <taskdef resource="PCT.properties" classpath="/Progress/PCT116/ant/lib/PCT.jar" /> <target name="sonarlint"> <PCTRun procedure="Consultingwerk/Studio/SonarLintLauncher/sonarlint.p" graphicalMode="true" dlcHome="${progress.DLC}" cpinternal="iso8859-1" cpstream="iso8859-1" compileUnderscore="true" inputchars="2000000" token="4000" tempDir="c:\temp"> <Parameter name="sonarlint" value="${sonarlint}"/> <Parameter name="SelectedFile" value="${SelectedFile}"/> <Parameter name="sourceEncoding" value="${sourceEncoding}"/> <Parameter name="dlc" value="${dlc}"/> <Parameter name="propath" value="${propath}"/> <Parameter name="databases" value="${databases}"/> </PCTRun> </target> </project>
Eclipse External Tools Launch Configuration
The Eclipse External Tools Launch Configuration configures how the ANT script is invoked from within Progress Developer Studio.
To create the launch configuration, open the External Tools Configurations dialog and create a new ANT Build configuration with the following settings.
Setting | Description |
---|---|
Name | The name for the External Tools Run Configuration |
Buildfile | You ANT script, based on above example |
Base Directory | The sourcecode's project root |
Arguments | -Dsonarlint=c:\Progress\sonarlint-cli |
Refresh resources upon completion | Checked, Specific resources, select the .sonarlint directory in your project root folder, available after first run only |
Common → Save as | Shared File, specify a file name to share this configuration with team mates |
Executing the ANT script
To execute the ANT script from Progress Developer Studio, select the resource to analyse (a single sourcecode file or a whole folder in the resource view.
Then execute the external tools configuration.
The Script will be executed, output is provided in the console view.
The SonarLint report can be found in the .sonarlint/sonarlint-report.html file.