retreever
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>dev.retreever</groupId>
<artifactId>retreever</artifactId>
<version>2.0.0</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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dev.retreever</groupId>
<artifactId>retreever</artifactId>
<version>2.0.0</version>
<packaging>jar</packaging>
<name>Retreever</name>
<description>Lightweight developer-first toolkit for generating and testing API documentation in Spring Boot apps</description>
<url>https://retreever.dev</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<developers>
<developer>
<id>rajumb0232</id>
<name>Raju Gowda</name>
<email>rajugowda.towork@gmail.com</email>
<url>https://rajugowda.in</url>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/retreever-org/retreever-java.git</connection>
<developerConnection>scm:git:ssh://git@github.com/retreever-org/retreever-java.git</developerConnection>
<url>https://github.com/retreever-org/retreever-java</url>
<tag>HEAD</tag>
</scm>
<properties>
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.boot.version>3.5.8</spring.boot.version>
<jackson2.version>2.19.2</jackson2.version>
<maven.source.plugin.version>3.4.0</maven.source.plugin.version>
<maven.javadoc.plugin.version>3.12.0</maven.javadoc.plugin.version>
<maven.gpg.plugin.version>3.2.8</maven.gpg.plugin.version>
<central.publishing.plugin.version>0.10.0</central.publishing.plugin.version>
<cyclonedx.maven.plugin.version>2.9.1</cyclonedx.maven.plugin.version>
<build.helper.maven.plugin.version>3.6.0</build.helper.maven.plugin.version>
<exec.maven.plugin.version>3.3.0</exec.maven.plugin.version>
<frontend.maven.plugin.version>1.15.0</frontend.maven.plugin.version>
<maven.antrun.plugin.version>3.1.0</maven.antrun.plugin.version>
<node.version>v20.19.0</node.version>
<npm.arguments>ci</npm.arguments>
<retreever.ui.repository>https://github.com/retreever-org/retreever-ui.git</retreever.ui.repository>
<retreever.ui.directory>${project.build.directory}/retreever-ui</retreever.ui.directory>
<retreever.ui.dist.directory>${retreever.ui.directory}/dist</retreever.ui.dist.directory>
<retreever.ui.base.path>/retreever/</retreever.ui.base.path>
<retreever.node.install.directory>${project.build.directory}/node-runtime</retreever.node.install.directory>
<retreever.node.executable>${retreever.node.install.directory}/node/node</retreever.node.executable>
<retreever.npm.cli>${retreever.node.install.directory}/node/node_modules/npm/bin/npm-cli.js</retreever.npm.cli>
<retreever.npm.cache.directory>${project.build.directory}/npm-cache</retreever.npm.cache.directory>
<retreever.ui.skip>false</retreever.ui.skip>
<retreever.ui.sbom.json>${project.build.directory}/retreever-ui-cyclonedx.json</retreever.ui.sbom.json>
</properties>
<!-- Import Spring Boot managed versions -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Provided because your lib needs them but should not package them -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson2.version}</version>
</dependency>
<!-- Testing -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>META-INF/resources/**</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven.antrun.plugin.version}</version>
<executions>
<execution>
<id>prepare-frontend-workspace</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${retreever.ui.skip}</skip>
<target>
<delete dir="${retreever.ui.directory}"/>
<mkdir dir="${project.build.directory}/lib"/>
<mkdir dir="${retreever.node.install.directory}/lib"/>
</target>
</configuration>
</execution>
<execution>
<id>clear-packaged-frontend</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${retreever.ui.skip}</skip>
<target>
<delete dir="${project.build.outputDirectory}/META-INF/resources"/>
<delete dir="${project.build.outputDirectory}/META-INF/retreever-ui"/>
<mkdir dir="${project.build.outputDirectory}/META-INF/retreever-ui/retreever"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec.maven.plugin.version}</version>
<executions>
<execution>
<id>clone-frontend</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${retreever.ui.skip}</skip>
<executable>git</executable>
<arguments>
<argument>clone</argument>
<argument>--depth</argument>
<argument>1</argument>
<argument>${retreever.ui.repository}</argument>
<argument>${retreever.ui.directory}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend.maven.plugin.version}</version>
<configuration>
<installDirectory>${retreever.node.install.directory}</installDirectory>
<workingDirectory>${retreever.ui.directory}</workingDirectory>
<skip>${retreever.ui.skip}</skip>
</configuration>
<executions>
<execution>
<id>install-node-and-npm</id>
<phase>generate-resources</phase>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
</configuration>
</execution>
<execution>
<id>npm-install</id>
<phase>generate-resources</phase>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>${npm.arguments}</arguments>
<environmentVariables>
<NPM_CONFIG_CACHE>${retreever.npm.cache.directory}</NPM_CONFIG_CACHE>
</environmentVariables>
</configuration>
</execution>
<execution>
<id>npm-build</id>
<phase>generate-resources</phase>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build -- --base=${retreever.ui.base.path}</arguments>
<environmentVariables>
<NPM_CONFIG_CACHE>${retreever.npm.cache.directory}</NPM_CONFIG_CACHE>
<VITE_ICON_192>/retreever/assets/icons/icon192v2.png</VITE_ICON_192>
<VITE_ICON_256>/retreever/assets/icons/icon256v2.png</VITE_ICON_256>
<VITE_ICON_512>/retreever/assets/icons/icon512v2.png</VITE_ICON_512>
</environmentVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy-frontend</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<skip>${retreever.ui.skip}</skip>
<outputDirectory>${project.build.outputDirectory}/META-INF/retreever-ui/retreever</outputDirectory>
<resources>
<resource>
<directory>${retreever.ui.dist.directory}</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>windows-node-runtime</id>
<activation>
<os>
<family>Windows</family>
</os>
</activation>
<properties>
<retreever.node.executable>${retreever.node.install.directory}/node/node.exe</retreever.node.executable>
</properties>
</profile>
<profile>
<id>central-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven.source.plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin.version}</version>
<configuration>
<source>${java.version}</source>
<doclint>none</doclint>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx.maven.plugin.version}</version>
<executions>
<execution>
<id>generate-release-sbom</id>
<phase>package</phase>
<goals>
<goal>makeBom</goal>
</goals>
<configuration>
<projectType>library</projectType>
<schemaVersion>1.6</schemaVersion>
<includeCompileScope>true</includeCompileScope>
<includeProvidedScope>true</includeProvidedScope>
<includeRuntimeScope>true</includeRuntimeScope>
<includeTestScope>false</includeTestScope>
<skipNotDeployed>false</skipNotDeployed>
<outputFormat>all</outputFormat>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec.maven.plugin.version}</version>
<executions>
<execution>
<id>generate-ui-sbom</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<workingDirectory>${retreever.ui.directory}</workingDirectory>
<executable>${retreever.node.executable}</executable>
<arguments>
<argument>${retreever.npm.cli}</argument>
<argument>sbom</argument>
<argument>--omit=dev</argument>
<argument>--sbom-format=cyclonedx</argument>
</arguments>
<environmentVariables>
<NPM_CONFIG_CACHE>${retreever.npm.cache.directory}</NPM_CONFIG_CACHE>
</environmentVariables>
<outputFile>${retreever.ui.sbom.json}</outputFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build.helper.maven.plugin.version}</version>
<executions>
<execution>
<id>attach-ui-sbom</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${retreever.ui.sbom.json}</file>
<type>json</type>
<classifier>retreever-ui-cyclonedx</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven.gpg.plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central.publishing.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>validated</waitUntil>
<deploymentName>${project.groupId}:${project.artifactId}:${project.version}</deploymentName>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>