sonar-python-plugin
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.sonarsource.python</groupId> <artifactId>sonar-python-plugin</artifactId> <version>5.11.0.25975</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.sonarsource.python</groupId> <artifactId>python</artifactId> <version>5.11.0.25975</version> </parent> <artifactId>sonar-python-plugin</artifactId> <packaging>sonar-plugin</packaging> <name>Python :: Sonar Plugin</name> <!-- Be careful when altering <description> as its value shows up in the SonarQube GUI --> <description>Code Analyzer for Python</description> <url>http://redirect.sonarsource.com/plugins/python.html</url> <scm> <connection>scm:git:git@github.com:SonarCommunity/sonar-python.git</connection> <developerConnection>scm:git:git@github.com:SonarCommunity/sonar-python.git</developerConnection> <url>https://github.com/SonarCommunity/sonar-python</url> <tag>HEAD</tag> </scm> <properties> <licenseDirectoryUri>${project.baseUri}/../license-resources</licenseDirectoryUri> </properties> <dependencies> <dependency> <groupId>org.sonarsource.api.plugin</groupId> <artifactId>sonar-plugin-api</artifactId> </dependency> <dependency> <groupId>org.sonarsource.sonarlint.core</groupId> <artifactId>sonarlint-plugin-api</artifactId> </dependency> <dependency> <groupId>org.sonarsource.sonarqube</groupId> <artifactId>sonar-plugin-api-impl</artifactId> <version>${sonar.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>python-frontend</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>python-checks</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>python-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.sonarsource.analyzer-commons</groupId> <artifactId>sonar-analyzer-commons</artifactId> </dependency> <dependency> <groupId>org.sonarsource.analyzer-commons</groupId> <artifactId>sonar-xml-parsing</artifactId> </dependency> <dependency> <groupId>org.sonarsource.analyzer-commons</groupId> <artifactId>sonar-performance-measure</artifactId> </dependency> <dependency> <groupId>org.sonarsource.sslr</groupId> <artifactId>sslr-testing-harness</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>org.codehaus.staxmate</groupId> <artifactId>staxmate</artifactId> </dependency> <dependency> <groupId>org.sonarsource.sonarqube</groupId> <artifactId>sonar-testing-harness</artifactId> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> </dependency> <dependency> <groupId>org.sonarsource.sonarlint.core</groupId> <artifactId>sonarlint-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.sonarsource.api.plugin</groupId> <artifactId>sonar-plugin-api-test-fixtures</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> <artifactId>sonar-packaging-maven-plugin</artifactId> <configuration> <pluginName>Python Code Quality and Security</pluginName> <pluginClass>org.sonar.plugins.python.PythonPlugin</pluginClass> <skipDependenciesPackaging>true</skipDependenciesPackaging> <sonarLintSupported>true</sonarLintSupported> <pluginApiMinVersion>${pluginApiMinVersion}</pluginApiMinVersion> <jreMinVersion>${jre.min.version}</jreMinVersion> <requiredForLanguages>py,ipynb</requiredForLanguages> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <version>2.7.0</version> <configuration> <errorRemedy>failFast</errorRemedy> <writeVersions>false</writeVersions> <socketTimeout>20000</socketTimeout> <licensesOutputDirectory>${project.build.directory}/temp-licenses/THIRD_PARTY_LICENSES</licensesOutputDirectory> <licensesOutputFile>${project.build.directory}/licenses.xml</licensesOutputFile> <organizeLicensesByDependencies>true</organizeLicensesByDependencies> <excludedGroups>com.sonarsource|org.sonarsource.python|jaxen</excludedGroups> <licenseUrlReplacements> <licenseUrlReplacement> <regexp>https://asm.ow2.io/license.html</regexp> <replacement>${licenseDirectoryUri}/asm_ow2_bsd.txt</replacement> </licenseUrlReplacement> <licenseUrlReplacement> <regexp>http://www.opensource.org/licenses/bsd-license.php</regexp> <replacement>${licenseDirectoryUri}/bsd2_clause.txt</replacement> </licenseUrlReplacement> <licenseUrlReplacement> <regexp>https://opensource.org/licenses/BSD-3-Clause</regexp> <replacement>${licenseDirectoryUri}/bsd3_clause.txt</replacement> </licenseUrlReplacement> <licenseUrlReplacement> <regexp>http://www.saxproject.org/copying.html</regexp> <replacement>${licenseDirectoryUri}/sax.txt</replacement> </licenseUrlReplacement> <licenseUrlReplacement> <regexp>http://www.gnu.org/licenses/lgpl.txt</regexp> <replacement>${licenseDirectoryUri}/lgpl.txt</replacement> </licenseUrlReplacement> </licenseUrlReplacements> <licenseUrlFileNameSanitizers> <LicenseUrlReplacement> <regexp>_.*\.txt</regexp> </LicenseUrlReplacement> <!-- Append -LICENSE.txt --> <LicenseUrlReplacement> <regexp>$</regexp> <replacement>-LICENSE.txt</replacement> </LicenseUrlReplacement> </licenseUrlFileNameSanitizers> </configuration> <executions> <execution> <phase>generate-resources</phase> <id>download-licenses</id> <goals> <goal>download-licenses</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>copy-main-license</id> <phase>generate-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>..</directory> <includes> <include>LICENSE.txt</include> </includes> </resource> </resources> <outputDirectory>${project.build.directory}/temp-licenses</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.5.1</version> <executions> <execution> <id>validate-license-files</id> <phase>verify</phase> <goals> <goal>exec</goal> </goals> <configuration> <skip>${skipLicenseValidation}</skip> <executable>python</executable> <arguments> <argument>${project.basedir}/../tools/validate_licenses.py</argument> <argument>--temp_licenses=${project.build.directory}/temp-licenses</argument> <argument>--committed_licenses=${project.basedir}/src/main/resources/licenses</argument> </arguments> <useMavenLogger>true</useMavenLogger> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <shadedArtifactAttached>false</shadedArtifactAttached> <createDependencyReducedPom>false</createDependencyReducedPom> <minimizeJar>true</minimizeJar> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/LICENSE*</exclude> <exclude>META-INF/NOTICE*</exclude> <exclude>META-INF/*.RSA</exclude> <exclude>META-INF/*.SF</exclude> <exclude>LICENSE*</exclude> <exclude>NOTICE*</exclude> </excludes> </filter> <filter> <!-- Keeping all classes from python-frontend in case some class is not used (e.g. class is created for custom rules) --> <artifact>org.sonarsource.python:python-frontend</artifact> <includes> <include>**</include> </includes> </filter> </filters> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-plugin-size</id> <goals> <goal>enforce</goal> </goals> <phase>verify</phase> <configuration> <rules> <requireFilesSize> <maxsize>20000000</maxsize> <minsize>1000000</minsize> <files> <file>${project.build.directory}/${project.build.finalName}.jar</file> </files> </requireFilesSize> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>updateLicenses</id> <build> <plugins> <!-- Clean existing licenses before regenerating --> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>3.1.0</version> <executions> <!-- Clean licenses directory first --> <execution> <id>clean-licenses</id> <phase>initialize</phase> <configuration> <target> <echo message="Cleaning existing license files before regeneration..."/> <delete dir="${project.basedir}/src/main/resources/licenses" failonerror="false"/> <mkdir dir="${project.basedir}/src/main/resources/licenses"/> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> <!-- Disable license validation when updating --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execution> <id>validate-license-files</id> <phase>none</phase> </execution> </executions> </plugin> <!-- Override license-maven-plugin to write to actual resource directory --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <configuration> <!-- Override to write directly to resources when updating --> <licensesOutputDirectory>${project.basedir}/src/main/resources/licenses/THIRD_PARTY_LICENSES</licensesOutputDirectory> </configuration> </plugin> <!-- Override maven-resources-plugin to write to actual resource directory --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-main-license</id> <configuration> <!-- Override to write directly to resources when updating --> <outputDirectory>${project.basedir}/src/main/resources/licenses</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>