Skip to content
Snippets Groups Projects
pom.xml 3.36 KiB
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.3.5</version>
  </parent>
  <groupId>demo.sonar</groupId>
  <artifactId>sonar-maven</artifactId>
  <version>0.2</version>
  <packaging>pom</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>21</java.version>
    <springboot.version>3.3.5</springboot.version>
    <npm.version>10.9.0</npm.version>
    <node.version>20.18.0</node.version>
    <plugin.frontend.version>1.15.1</plugin.frontend.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${springboot.version}</version>
      </dependency>
      <dependency>
        <!--Analyse SonarQube-->
        <groupId>demo.sonar</groupId>
        <artifactId>sonar-maven-frontend</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <modules>
    <module>sonar-maven-backend</module>
    <module>sonar-maven-frontend</module>
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <!--
          Le plugin Frontend n'est ici utilisé que pour SonarQube car restitution "server-side".
          => Il est donc branché sur la seule phase "verify".
          => L'installation des dépendances npm est inutile, seule la présence de node nous intéresse.

          Dans le cas d'une SPA de type Angular/React/Vuejs, il est aussi utile pour la construction du front.
          => Il resterait branché sur sa phase par défaut "generate-resources".
          => npm install redeviendrait nécessaire.
        -->
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>${plugin.frontend.version}</version>
          <configuration>
            <installDirectory>target</installDirectory>
          </configuration>
          <executions>
            <execution>
              <!-- Installation de node et npm-->
              <id>install-node-npm</id>
              <phase>verify</phase>
              <goals>
                <goal>install-node-and-npm</goal>
              </goals>
              <configuration>
                <nodeVersion>v${node.version}</nodeVersion>
                <npmVersion>${npm.version}</npmVersion>
              </configuration>
            </execution>
            <!--
              Installation des dépendances npm.
              Désactivé ici car inutile en dehors du contexte d'une SPA, laissé pour mémoire
            -->
            <!--
            <execution>
              <id>npm-install</id>
              <goals>
                <goal>npm</goal>
              </goals>
              <configuration>
                <arguments>install</arguments>
              </configuration>
            </execution>
            -->
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>