archetype-resources.pom.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-mvc-react-archetype
Show all versions of spring-mvc-react-archetype
A Maven Archetype for projects using Spring MVC, and React + Redux.
<?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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- ********************************************** --> <!-- ***************** PARENT POM ***************** --> <!-- ********************************************** --> <parent> <groupId>com.bernardomg.maven</groupId> <artifactId>base-pom</artifactId> <version>1.2.4</version> </parent> <!-- ********************************************** --> <!-- **************** PROJECT INFO **************** --> <!-- ********************************************** --> <groupId>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <packaging>war</packaging> <name>${projectName}</name> <description>${projectDescription}</description> <url>https://github.com/${repoUserId}/${artifactId}</url> <inceptionYear>${currentYear}</inceptionYear> <licenses> <license> <name>MIT License</name> <url>http://www.opensource.org/licenses/mit-license.php</url> <distribution>repo</distribution> </license> </licenses> <!-- ********************************************** --> <!-- ************ RESOURCES AND SERVICES ********** --> <!-- ********************************************** --> <scm> <connection>scm:git:https://github.com/${repoUserId}/${artifactId}.git</connection> <developerConnection>scm:git:https://github.com/${repoUserId}/${artifactId}.git</developerConnection> <tag>head</tag> <url>https://www.github.com/${repoUserId}/${artifactId}</url> </scm> <issueManagement> <system>GitHub</system> <url>https://www.github.com/${repoUserId}/${artifactId}/issues</url> </issueManagement> <ciManagement> <system>Travis CI</system> <url>https://travis-ci.org/${repoUserId}/${artifactId}</url> <notifiers /> </ciManagement> <distributionManagement> <repository> <uniqueVersion>false</uniqueVersion> <id>releases</id> <name>Releases Repository</name> <url>https://api.bintray.com/maven/${repoUserId}/maven/${artifactId}</url> </repository> <snapshotRepository> <uniqueVersion>false</uniqueVersion> <id>snapshots</id> <name>Snapshots Repository</name> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> <!-- ********************************************** --> <!-- ****************** PROFILES ****************** --> <!-- ********************************************** --> <profiles> <profile> <!-- Profile for the Eclipse Maven plugin --> <!-- Sets the POM so this plugin does not give the usual unregistered goals errors --> <!-- It will be activated automatically on Eclipse if this has the m2e plugin, by detecting the version property --> <id>eclipse-maven</id> <activation> <property> <name>m2e.version</name> </property> </activation> <build> <pluginManagement> <plugins> <plugin> <!-- m2e lifecycle mapping --> <!-- This is used to configure the Maven plugin for Eclipse. --> <!-- Among other things, it allows registering goals, which Eclipse would otherwise reject. --> <!-- It has no real effect on Maven. --> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>${plugin.lifecycle.version}</version> <configuration> <!-- Sample fix for plugin executions --> <!-- This is to be used in case a Maven plugins gives problems in Eclipse --> <!-- <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <versionRange>[0.5,)</versionRange> <goals> <goal>prepare-agent</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> --> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> <!-- ============================================== --> <!-- ============= DATABASE PROFILES ============== --> <!-- ============================================== --> <profile> <!-- Properties-based database profile --> <!-- Sets up the database from properties --> <id>db-properties</id> <activation> <!-- Active by default --> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- Authentication sources for the DB --> <database.auth.source>properties</database.auth.source> </properties> </profile> <profile> <!-- H2 database profile --> <!-- Prepares the project to make use of an H2 in-memory database --> <id>h2</id> <activation> <!-- Active by default so it can be installed by CI --> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- Access data --> <!-- Default values for testing and development --> <!-- Override them for production --> <database.url>jdbc:h2:mem:${artifactId.replace("-", "_")}</database.url> <database.username>sa</database.username> <database.password></database.password> <!-- Spring context --> <database.tag>h2</database.tag> </properties> <dependencies> <dependency> <!-- H2 database --> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${h2.version}</version> </dependency> </dependencies> </profile> <profile> <!-- MySQL database profile --> <!-- Prepares the project to make use of a MySQL database --> <id>mysql</id> <activation> <property> <name>env.DATABASE_SYSTEM</name> <value>mysql</value> </property> </activation> <properties> <!-- Access data --> <!-- Default values for testing and development --> <!-- Override them for production --> <database.url>jdbc:mysql://localhost:3306/${artifactId.replace("-", "_")}</database.url> <database.username>root</database.username> <database.password></database.password> <!-- Spring context --> <database.tag>mysql</database.tag> </properties> <dependencies> <dependency> <!-- MySQL connector --> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> </dependencies> </profile> <profile> <!-- Postgres database profile --> <!-- Prepares the project to make use of a Postgres database --> <id>postgres</id> <activation> <property> <name>env.DATABASE_SYSTEM</name> <value>postgres</value> </property> </activation> <properties> <!-- Access data --> <!-- Default values for testing and development --> <!-- Override them for production --> <database.url>jdbc:postgresql://localhost:5432/${artifactId.replace("-", "_")}</database.url> <database.username>postgres</database.username> <database.password></database.password> <!-- Spring context --> <database.tag>postgres</database.tag> </properties> <dependencies> <dependency> <!-- Postgres connector --> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgresql.version}</version> </dependency> </dependencies> </profile> <!-- ============================================== --> <!-- ========= EMBEDDED SERVER PROFILES =========== --> <!-- ============================================== --> <profile> <!-- Jetty profile --> <!-- Sets ups Jetty for testing and local deployment --> <id>jetty</id> <build> <plugins> <plugin> <!-- Jetty --> <!-- Jetty will run the web service during the integration tests --> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${plugin.jetty.version}</version> <configuration> <stopKey>STOP</stopKey> <stopPort>9999</stopPort> <stopWait>5</stopWait> </configuration> <executions> <execution> <id>start-jetty-it</id> <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> <configuration> <scanIntervalSeconds>0</scanIntervalSeconds> <daemon>true</daemon> <useTestScope>true</useTestScope> <webApp> <overrideDescriptor>${project.build.directory}/${project.build.finalName}/WEB-INF/web.xml</overrideDescriptor> </webApp> </configuration> </execution> <execution> <id>stop-jetty-it</id> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <!-- Tomcat 7 profile --> <!-- Sets ups Tomcat 7 for testing and local deployment --> <id>tomcat7</id> <build> <plugins> <plugin> <!-- Tomcat 7 --> <!-- Tomcat 7 will run the web service during the integration tests --> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>${plugin.tomcat7.version}</version> <executions> <execution> <id>start-tomcat-it</id> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <fork>true</fork> <useTestClasspath>true</useTestClasspath> <warSourceDirectory>${project.build.directory}/${project.build.finalName}/</warSourceDirectory> </configuration> </execution> <execution> <id>stop-tomcat-it</id> <phase>post-integration-test</phase> <goals> <goal>shutdown</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- ============================================== --> <!-- ============ DEPLOYMENT PROFILES ============= --> <!-- ============================================== --> <profile> <!-- Release site deployment profile --> <!-- Sets the site repository to point to the releases repo --> <id>deployment-release</id> <activation> <!-- Active by default so the repository appears in the reports --> <activeByDefault>true</activeByDefault> </activation> <distributionManagement> <site> <id>site</id> <name>Project Documentation Site</name> <!-- The URL should be set externally --> <url>${site.release.url}</url> </site> </distributionManagement> </profile> <profile> <!-- Development site deployment profile --> <!-- Sets the site repository to point to the development repo --> <id>deployment-development</id> <distributionManagement> <site> <id>site-development</id> <name>Project Development Documentation Site</name> <!-- The URL should be set externally --> <url>${site.develop.url}</url> </site> </distributionManagement> </profile> <profile> <!-- Deployment profile --> <!-- Sets ups the environment for deployment --> <id>deployment</id> <properties> <!-- Tests are skipped --> <maven.test.skip>true</maven.test.skip> </properties> </profile> <!-- ============================================== --> <!-- =========== RUNTIME ENV PROFILES ============= --> <!-- ============================================== --> <profile> <!-- Production profile --> <!-- Sets ups the environment for production --> <id>production</id> <activation> <property> <name>env.ENVIRONMENT_MODE</name> <value>production</value> </property> </activation> <build> <plugins> <plugin> <!-- Frontend Plugin --> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <executions> <execution> <!-- Builds the frontend --> <id>frontend-build</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run build</arguments> <environmentVariables> <APP_VERSION>${node.env.appVersion}</APP_VERSION> <REPO_URL>${node.env.repoUrl}</REPO_URL> <INPUT_PATH>${node.env.inputPath}</INPUT_PATH> <OUTPUT_PATH>${node.env.outputPath}</OUTPUT_PATH> <MODULE_PATH>${node.env.modules}</MODULE_PATH> </environmentVariables> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <!-- Development profile --> <!-- Sets ups the environment for development and testing --> <id>development</id> <activation> <!-- Active by default to ease development --> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> <plugin> <!-- Frontend Plugin --> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <executions> <execution> <!-- Builds the frontend --> <id>frontend-build</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run development</arguments> <environmentVariables> <APP_VERSION>${node.env.appVersion}</APP_VERSION> <REPO_URL>${node.env.repoUrl}</REPO_URL> <INPUT_PATH>${node.env.inputPath}</INPUT_PATH> <OUTPUT_PATH>${node.env.outputPath}</OUTPUT_PATH> <MODULE_PATH>${node.env.modules}</MODULE_PATH> </environmentVariables> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- ============================================== --> <!-- =============== HOST PROFILES ================ --> <!-- ============================================== --> <profile> <!-- Heroku profiles --> <!-- Sets up the project to be built by heroku --> <id>heroku</id> <activation> <property> <name>env.DYNO</name> </property> </activation> <properties> <!-- Spring context --> <database.auth.source>env</database.auth.source> </properties> <build> <plugins> <plugin> <!-- Dependency plugin --> <!-- Used to copy the webapp runner --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-webapp-runner</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>com.github.jsimone</groupId> <artifactId>webapp-runner</artifactId> <version>${webappRunner.version}</version> <destFileName>webapp-runner.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- ============================================== --> <!-- =========== BENCHMARKING PROFILES ============ --> <!-- ============================================== --> <profile> <!-- Size report profile --> <id>size</id> <build> <plugins> <plugin> <!-- Frontend Plugin --> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <executions> <execution> <!-- Builds the frontend --> <id>frontend-build</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run size</arguments> <environmentVariables> <APP_VERSION>${node.env.appVersion}</APP_VERSION> <REPO_URL>${node.env.repoUrl}</REPO_URL> <INPUT_PATH>${node.env.inputPath}</INPUT_PATH> <OUTPUT_PATH>${node.env.outputPath}</OUTPUT_PATH> <MODULE_PATH>${node.env.modules}</MODULE_PATH> </environmentVariables> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <!-- ********************************************** --> <!-- *********** ORGANIZATION AND MEMBERS ********* --> <!-- ********************************************** --> <organization> <name>${developerName}</name> <url>${developerUrl}</url> </organization> <developers> <developer> <id>${developerId}</id> <name>${developerName}</name> <email>${developerMail}</email> <url>${developerUrl}</url> <organization>${developerName}</organization> <organizationUrl>${developerUrl}</organizationUrl> <roles> <role>Developer</role> </roles> <timezone>+1</timezone> <properties /> </developer> </developers> <!-- ********************************************** --> <!-- **************** PROPERTIES ****************** --> <!-- ********************************************** --> <properties> <!-- ============================================== --> <!-- ================ JAVA VERSION ================ --> <!-- ============================================== --> <java.version>1.8</java.version> <!-- ============================================== --> <!-- =============== MANIFEST DATA ================ --> <!-- ============================================== --> <manifest.name>${packageInPathFormat}</manifest.name> <!-- ============================================== --> <!-- =============== TEMPLATE INFO ================ --> <!-- ============================================== --> <view.keywords>${keywords}</view.keywords> <site.url>${siteUrl}</site.url> <social.twitter>${twitter}</social.twitter> <!-- ============================================== --> <!-- ============= NODE ENVIRONMENT =============== --> <!-- ============================================== --> <node.env.appVersion>v${project.version}</node.env.appVersion> <node.env.repoUrl>${project.scm.url}</node.env.repoUrl> <node.env.inputPath>./src/main/js/</node.env.inputPath> <node.env.outputPath>./target/generated-ui/</node.env.outputPath> <node.env.modules>./node_modules</node.env.modules> <!-- ============================================== --> <!-- =========== DEPENDENCIES VERSIONS ============ --> <!-- ============================================== --> <aspectj.version>1.9.4</aspectj.version> <classmate.version>1.3.4</classmate.version> <commons.logging.version>1.2</commons.logging.version> <glassfish.el>2.2</glassfish.el> <guava.version>28.0-jre</guava.version> <h2.version>1.4.199</h2.version> <hamcrest.version>2.0.0.0</hamcrest.version> <hibernate.validator.version>5.4.1.Final</hibernate.validator.version> <hibernate.version>5.2.17.Final</hibernate.version> <hikari.version>2.7.8</hikari.version> <jackson.version>2.9.6</jackson.version> <javaee.api.version>2.2</javaee.api.version> <jasperreports.version>6.4.1</jasperreports.version> <jsonpath.version>2.4.0</jsonpath.version> <junit.jupiter.version>5.5.1</junit.jupiter.version> <junit.platform.version>1.5.1</junit.platform.version> <liquibase.version>3.7.0</liquibase.version> <log4j.version>2.11.1</log4j.version> <mockito.version>2.25.0</mockito.version> <mysql.version>5.1.39</mysql.version> <postgresql.version>42.1.4</postgresql.version> <servlet.version>4.0.1</servlet.version> <slf4j.version>1.8.0-alpha2</slf4j.version> <spring.data.train.version>Kay-RELEASE</spring.data.train.version> <spring.version>5.0.8.RELEASE</spring.version> <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version> <webappRunner.version>8.5.30.0</webappRunner.version> <!-- ============================================== --> <!-- ============== PLUGINS VERSIONS ============== --> <!-- ============================================== --> <plugin.frontend.node.version>v12.3.1</plugin.frontend.node.version> <plugin.frontend.npm.version>6.9.0</plugin.frontend.npm.version> <plugin.frontend.version>1.7.6</plugin.frontend.version> <plugin.jetty.version>9.4.19.v20190610</plugin.jetty.version> <plugin.tomcat7.version>2.2</plugin.tomcat7.version> <!-- ============================================== --> <!-- ================= MAVEN SITE ================= --> <!-- ============================================== --> <site.skin.version>1.4.2</site.skin.version> </properties> <!-- ********************************************** --> <!-- *************** DEPENDENCIES ***************** --> <!-- ********************************************** --> <dependencyManagement> <dependencies> <dependency> <!-- Spring Framework BOM --> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <!-- Spring Data Train BOM --> <groupId>org.springframework.data</groupId> <artifactId>spring-data-releasetrain</artifactId> <version>${spring.data.train.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <!-- Jackson BOM --> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>${jackson.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- ============================================== --> <!-- ================== SPRING ==================== --> <!-- ============================================== --> <dependency> <!-- Spring beans --> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <!-- Spring context --> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <!-- Spring context support --> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <!-- Spring Core --> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <!-- Spring Data JPA --> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency> <dependency> <!-- Spring JDBC --> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <!-- Spring OXM --> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> </dependency> <dependency> <!-- Spring transactions --> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <!-- Spring Web MVC --> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <!-- Spring ORM --> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <!-- ============================================== --> <!-- ================= ASPECTJ ==================== --> <!-- ============================================== --> <dependency> <!-- AspectJ Runtime --> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <!-- AspectJ Weaver --> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> <scope>runtime</scope> </dependency> <!-- ============================================== --> <!-- ============== JPA DEPENDENCIES ============== --> <!-- ============================================== --> <dependency> <!-- JPA API --> <groupId>javax.persistence</groupId> <artifactId>javax.persistence-api</artifactId> <version>${javaee.api.version}</version> </dependency> <!-- ============================================== --> <!-- ================ HIBERNATE =================== --> <!-- ============================================== --> <dependency> <!-- Hibernate Core --> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <!-- Hibernate Ehcache --> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <!-- Hibernate validator --> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${hibernate.validator.version}</version> </dependency> <dependency> <!-- Hikari CP --> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>${hikari.version}</version> </dependency> <!-- ============================================== --> <!-- ================ LIQUIBASE =================== --> <!-- ============================================== --> <dependency> <!-- Liquibase --> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>${liquibase.version}</version> </dependency> <!-- ============================================== --> <!-- ============== JASPERREPORTS ================= --> <!-- ============================================== --> <dependency> <!-- Jasper Reports --> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports</artifactId> <version>${jasperreports.version}</version> </dependency> <!-- ============================================== --> <!-- ================ SERVLET ===================== --> <!-- ============================================== --> <dependency> <!-- Servlet API --> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency> <!-- ============================================== --> <!-- ================ THYMELEAF =================== --> <!-- ============================================== --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>${thymeleaf.version}</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>${thymeleaf.version}</version> </dependency> <!-- ============================================== --> <!-- ================== LOGGING =================== --> <!-- ============================================== --> <dependency> <!-- Log4j core --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- Log4j Commons Logging Bridge --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- Log4j SLF4J Bridge --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j18-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- Log4j Web --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <!-- SL4J API --> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- ============================================== --> <!-- ================= JACKSON ==================== --> <!-- ============================================== --> <dependency> <!-- Jackson --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <!-- Jackson databinding --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <!-- Jackson annotations --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency> <!-- ============================================== --> <!-- ============ OTHER DEPENDENCIES ============== --> <!-- ============================================== --> <dependency> <!-- Guava --> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency> <dependency> <!-- Javax EL implementation --> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId> <version>${glassfish.el}</version> <scope>provided</scope> </dependency> <!-- ============================================== --> <!-- =========== VERSION ENFORCEMENT ============== --> <!-- ============================================== --> <dependency> <!-- FasterXML ClassMate --> <groupId>com.fasterxml</groupId> <artifactId>classmate</artifactId> <version>${classmate.version}</version> </dependency> <dependency> <!-- Commons Logging --> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>${commons.logging.version}</version> </dependency> <!-- ============================================== --> <!-- ======= TEST ENVIRONMENT DEPENDENCIES ======== --> <!-- ============================================== --> <dependency> <!-- Hamcrest --> <groupId>org.hamcrest</groupId> <artifactId>java-hamcrest</artifactId> <version>${hamcrest.version}</version> <scope>test</scope> </dependency> <dependency> <!-- JSON Path --> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>${jsonpath.version}</version> <scope>test</scope> </dependency> <dependency> <!-- JUnit Jupiter Engine --> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <!-- JUnit Jupiter Platform --> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-runner</artifactId> <version>${junit.platform.version}</version> <scope>test</scope> </dependency> <dependency> <!-- Mockito --> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <dependency> <!-- Spring Test --> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!-- ********************************************** --> <!-- ******************* BUILD ******************** --> <!-- ********************************************** --> <build> <defaultGoal>clean package</defaultGoal> <resources> <resource> <directory>src/main/resources/</directory> </resource> <resource> <!-- Main resources --> <directory>src/main/resources/</directory> <includes> <!-- Filter the application context --> <include>context/application-context.xml</include> <!-- Filter the persistence access properties --> <include>config/persistence-access.properties</include> </includes> <filtering>true</filtering> </resource> </resources> <pluginManagement> <plugins> <plugin> <!-- Frontend Plugin --> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>${plugin.frontend.version}</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <!-- Build helper --> <!-- Adds the generated files to the Maven classpath --> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>add-source</id> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <!-- JS sources --> <source>${project.basedir}/src/main/js</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <!-- Changes --> <!-- Takes care of the changes log --> <!-- It is set to also validate the changes log file --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <executions> <!-- Changes plugin is bound to the pre-site phase --> <execution> <id>check-changes</id> <phase>pre-site</phase> <goals> <goal>changes-check</goal> </goals> </execution> <execution> <id>validate-changes</id> <phase>pre-site</phase> <goals> <goal>changes-validate</goal> </goals> <configuration> <failOnError>true</failOnError> </configuration> </execution> </executions> </plugin> <plugin> <!-- Enforcer --> <!-- Stops the project from being built if it does not comply with a set of rules. --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <!-- The enforce goal is bound to the validate phase --> <execution> <id>enforce-database</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <!-- A database should be set. --> <requireProperty> <property>database.tag</property> <message><![CDATA[Give a Spring database profile.]]></message> </requireProperty> <requireProperty> <property>database.url</property> <message><![CDATA[Give a URL for the database.]]></message> </requireProperty> <requireProperty> <property>database.username</property> <message><![CDATA[Give a username for the database.]]></message> </requireProperty> <requireProperty> <property>database.password</property> <message><![CDATA[Give a password for the database.]]></message> </requireProperty> </rules> </configuration> </execution> </executions> </plugin> <plugin> <!-- Frontend Plugin --> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <configuration> <installDirectory>target</installDirectory> </configuration> <executions> <execution> <!-- Installs the frontend frameworks --> <!-- Installs Node and npm --> <id>frontend-framework</id> <goals> <goal>install-node-and-npm</goal> </goals> <configuration> <nodeVersion>${plugin.frontend.node.version}</nodeVersion> <npmVersion>${plugin.frontend.npm.version}</npmVersion> </configuration> </execution> <execution> <!-- Installs the frontend dependencies --> <!-- Installs npm dependencies --> <id>frontend-dependencies</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>install</arguments> </configuration> </execution> <execution> <!-- Runs the frontend tests --> <id>frontend-test</id> <goals> <goal>npm</goal> </goals> <phase>test</phase> <configuration> <arguments>test</arguments> </configuration> </execution> </executions> </plugin> <plugin> <!-- Resources --> <!-- Handles the project resources. --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <!-- Variables to to override will be delimited with a @. --> <!-- This avoids collisions with Spring variables. --> <!-- So instead of replacing ${project.name} Maven will replace @project.name@. --> <useDefaultDelimiters>false</useDefaultDelimiters> <delimiters> <delimiter>@</delimiter> </delimiters> </configuration> </plugin> <plugin> <!-- Site --> <!-- Generates the Maven Site --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <dependencies> <dependency> <!-- Docs Maven Skin --> <groupId>com.bernardomg.maven.skins</groupId> <artifactId>docs-maven-skin</artifactId> <version>${site.skin.version}</version> </dependency> </dependencies> </plugin> <plugin> <!-- WAR --> <!-- Generates the WAR package. --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <!-- Persistence access data is filtered --> <filtering>true</filtering> <directory>${project.basedir}/src/main/resources/config</directory> <targetPath>WEB-INF/classes/config</targetPath> <includes> <include>persistence-access.properties</include> </includes> </resource> <resource> <!-- The UI template is filtered --> <filtering>true</filtering> <directory>${project.basedir}/src/main/webapp/WEB-INF/templates</directory> <targetPath>WEB-INF/templates</targetPath> <includes> <include>index.html</include> </includes> </resource> <resource> <!-- Generated files --> <directory>${project.build.directory}/generated-ui</directory> <targetPath>resources/</targetPath> </resource> </webResources> <!-- Variables to to override will be delimited with a @. --> <!-- This avoids collisions with Spring variables. --> <!-- So instead of replacing ${project.name} Maven will replace @project.name@. --> <useDefaultDelimiters>false</useDefaultDelimiters> <delimiters> <delimiter>@</delimiter> </delimiters> </configuration> </plugin> </plugins> </build> <!-- ********************************************** --> <!-- ****************** REPORTS ******************* --> <!-- ********************************************** --> <reporting> <plugins> <plugin> <!-- FindBugs --> <!-- Checks for patterns which are prone to errors --> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <configuration> <!-- Exclusion patterns --> <excludeFilterFile>${project.basedir}/src/config/findbugs/findbugs-exclude.xml</excludeFilterFile> </configuration> </plugin> <plugin> <!-- Checkstyle --> <!-- Checks that the source files comply with style standards --> <!-- It is using a customized rules file --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <!-- The customized rules file --> <configLocation>${project.basedir}/src/config/checkstyle/checkstyle-rules.xml</configLocation> <!-- Excludes generated code --> <excludes>**/generated/**/*</excludes> </configuration> </plugin> <plugin> <!-- Javadoc --> <!-- Generates the javadocs --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <sourceFileExcludes> <!-- Excludes generated code --> <exclude>**/generated/**/*</exclude> </sourceFileExcludes> </configuration> </plugin> <plugin> <!-- PMD --> <!-- Checks that the code complies with a series of code quality rules --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <configuration> <rulesets> <!-- The customized rules file --> <ruleset>${project.basedir}/src/config/pmd/pmd-rules.xml</ruleset> </rulesets> <excludes> <!-- Excludes generated code --> <exclude>**/generated/**/*</exclude> </excludes> </configuration> </plugin> </plugins> </reporting> </project>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy