blob: 13a212ef3811a21a8dc6b0d80632b01fef8f464b [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015 BSI Business Systems Integration AG.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
BSI Business Systems Integration AG - initial API and implementation
-->
<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>
<groupId>org.eclipse.scout</groupId>
<artifactId>maven_plugin_config-master</artifactId>
<version>3.9.0</version>
<relativePath>../maven_plugin_config-master</relativePath>
</parent>
<artifactId>maven_rt_plugin_config-master</artifactId>
<packaging>pom</packaging>
<name>Maven Master Plugin Build Configuration - RT</name>
<properties>
<master_skip_npm_build_dev>false</master_skip_npm_build_dev>
<master_skip_npm_build_prod>false</master_skip_npm_build_prod>
<master_skip_karma_test>${master_webTest_skip}</master_skip_karma_test>
<master_skip_copy_webpack_build_output>false</master_skip_copy_webpack_build_output>
<master_skip_snapshot_predependency>true</master_skip_snapshot_predependency>
<master_skip_snapshot_postdependency>true</master_skip_snapshot_postdependency>
<master_skip_release_predependency>true</master_skip_release_predependency>
<master_skip_release_postdependency>true</master_skip_release_postdependency>
<master_nodeDownloadRoot>https://nodejs.org/dist/</master_nodeDownloadRoot>
</properties>
<build>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jboss.jandex</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<versionRange>[1.0.1,)</versionRange>
<goals>
<goal>jandex</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<!-- WS-STUB generation: Instrument 'm2e' to generate webservice stub in Eclipse IDE (does not affect standalone Maven build) -->
<!-- Note: Artifacts are on re-generated if the hash of 'wsartifact-hash' changes. -->
<!-- Note: Do not move into 'jaxws' profile because ignored by 'm2e' otherwise. -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.helger.maven</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<versionRange>[${master_plugin_jaxws_version},)</versionRange>
<goals>
<goal>wsimport</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<!-- to run on full and incremental build -->
<runOnIncremental>true</runOnIncremental>
<!-- to run once a JAX-WS module is imported into workspace -->
<runOnConfiguration>true</runOnConfiguration>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<versionRange>[${master_plugin_frontend_version},)</versionRange>
<goals>
<goal>install-node-and-npm</goal>
<goal>npm</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<versionRange>[${master_plugin_exec_version},)</versionRange>
<goals>
<goal>exec</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins></plugins>
</reporting>
<profiles>
<profile>
<!-- Only create the jandex.idx when a scout.xml is found -->
<id>jandex-idx</id>
<activation>
<file>
<exists>${basedir}/src/main/resources/META-INF/scout.xml</exists>
</file>
</activation>
<build>
<plugins>
<!-- Create META-INF/jandex.idx -->
<plugin>
<groupId>org.jboss.jandex</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<executions>
<execution>
<id>make-index</id>
<goals>
<goal>jandex</goal>
</goals>
<!-- phase is 'process-classes by default' -->
<configuration>
<!-- Nothing needed here for simple cases -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Only create the jandex.idx when a scout.xml is found -->
<id>jandex-test-idx</id>
<activation>
<file>
<exists>${basedir}/src/test/resources/META-INF/scout.xml</exists>
</file>
</activation>
<build>
<plugins>
<!-- Create META-INF/jandex.idx -->
<plugin>
<groupId>org.jboss.jandex</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<executions>
<execution>
<id>make-index</id>
<goals>
<goal>jandex</goal>
</goals>
<!-- phase is 'process-classes by default' -->
<phase>process-test-classes</phase>
<configuration>
<processDefaultFileSet>false</processDefaultFileSet>
<fileSets>
<fileSet>
<directory>${project.build.directory}/test-classes/</directory>
</fileSet>
</fileSets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>generated_java_folder</id>
<activation>
<file>
<exists>${basedir}/src/generated/java</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<goals>
<goal>add-source</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<sources>
<source>src/generated/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile used for JAX-WS plugins to generate webservice artifacts like stub and proxy. -->
<!-- This profile is activated automatically if a folder 'src/main/resources/WEB-INF/wsdl' is found. -->
<profile>
<id>jaxws</id>
<activation>
<file>
<exists>${basedir}/src/main/resources/WEB-INF/wsdl</exists>
</file>
</activation>
<properties>
<!-- Destination directory for generated webservice artifacts -->
<jaxws.stub.directory>${project.build.directory}/generated-sources/wsimport</jaxws.stub.directory>
<!-- Directory to contain the calculated hash of WSDL, XSD and binding-files. If changed or absent, the stub is regenerated anew. -->
<jaxws.stale.directory>${project.build.directory}/jaxws/wsartifact-hash</jaxws.stale.directory>
<!-- To enable debug output when running APT. -->
<jaxws.apt.consoleLog>true</jaxws.apt.consoleLog>
<!-- Destination directory for generated APT artifacts. -->
<jaxws.apt.directory>${project.build.directory}/generated-sources/annotations</jaxws.apt.directory>
<!-- WSDL file name to set the 'wsdl-location' in @WebService and @WebServiceClient annotation -->
<jaxws.wsdl.file></jaxws.wsdl.file>
</properties>
<build>
<!-- EXCLUDE BINDING FILES (not used at runtime) -->
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<excludes>
<exclude>**/binding/</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- WSIMPORT (stub generation) -->
<!-- Note: The stub is only re-generated if the hash of 'wsartifact-hash' changed. -->
<plugin>
<groupId>com.helger.maven</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<configuration>
<wsdlDirectory>${basedir}/src/main/resources/WEB-INF/wsdl</wsdlDirectory>
<wsdlLocation>WEB-INF/wsdl/${jaxws.wsdl.file}</wsdlLocation>
<bindingDirectory>${basedir}/src/main/resources/WEB-INF/binding</bindingDirectory>
<sourceDestDir>${jaxws.stub.directory}</sourceDestDir>
<destDir>${jaxws.stub.directory}</destDir>
<xnocompile>true</xnocompile>
<!-- compilation done by Maven -->
<xdisableSSLHostnameVerification>true</xdisableSSLHostnameVerification>
<xdisableAuthenticator>true</xdisableAuthenticator>
<xdebug>true</xdebug>
<verbose>true</verbose>
<keep>true</keep>
<staleFile>${jaxws.stale.directory}</staleFile>
<vmArgs>
<vmArg>-Djavax.xml.accessExternalDTD=all</vmArg>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
</configuration>
<!-- to use a specific version of JAX-WS to build against -->
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>${master_dependency_jaxws_version}</version>
</dependency>
<dependency>
<!-- this dependency is required for Java 1.8 compatibility! -->
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>${master_dependency_jaxws_version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>wsimport-1</id>
<goals>
<goal>wsimport</goal>
</goals>
<phase>generate-sources</phase>
</execution>
</executions>
</plugin>
<!-- APT (PortTypeProxy, HandlerProxy, handler-chain.xml) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-AconsoleLog=${jaxws.apt.consoleLog}</arg>
<arg>-XprintProcessorInfo</arg>
<arg>-XprintRounds</arg>
</compilerArgs>
<verbose>true</verbose>
<generatedSourcesDirectory>${jaxws.apt.directory}</generatedSourcesDirectory>
</configuration>
<dependencies>
<!-- dependency to the annotation processor -->
<dependency>
<groupId>org.eclipse.scout.rt</groupId>
<artifactId>org.eclipse.scout.jaxws.apt</artifactId>
<version>${org.eclipse.scout.rt.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- REGISTER SOURCE FOLDER -->
<!-- Add 'target/generated-sources/annotations' as source folder -->
<!-- Add 'target/generated-sources/wsimport' as source folder -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-wsimport-source</id>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${jaxws.stub.directory}</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-apt-source</id>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${jaxws.apt.directory}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<!-- COPY artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- WSIMPORT artifacts -->
<execution>
<id>copy-wsimport-artifacts</id>
<!-- must not be 'process-resources' because APT files are only generated in compile phase -->
<goals>
<goal>copy-resources</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>${jaxws.stub.directory}</directory>
<includes>
<include>**/**.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<!-- APT artifacts -->
<execution>
<id>copy-apt-artifacts</id>
<!-- must not be 'process-resources' because APT files are only generated in compile phase -->
<goals>
<goal>copy-resources</goal>
</goals>
<phase>process-classes</phase>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>${jaxws.apt.directory}</directory>
<includes>
<include>**/**.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<!-- Copy JAX-WS artifacts to 'META-INF/resources/WEB-INF/wsdl' to respect ServletContext resource-loading API -->
<!-- That is crucial if 'JAX-WS implementor' loads resources by ServletContext, e.g. METRO -->
<execution>
<id>copy-jaxws-artifacts-to-meta-inf</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${basedir}/target/classes/META-INF/resources/WEB-INF/wsdl</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources/WEB-INF/wsdl</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- profiles used for pnpm build -->
<profile>
<id>npm-root-dir-win</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<master_npm_subdir>/node_modules</master_npm_subdir>
</properties>
</profile>
<profile>
<id>npm-root-dir-linux</id>
<activation>
<os>
<family>linux</family>
</os>
</activation>
<properties>
<master_npm_subdir>/lib/node_modules</master_npm_subdir>
</properties>
</profile>
<profile>
<id>npm-root-dir-mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<master_npm_subdir>/lib/node_modules</master_npm_subdir>
</properties>
</profile>
<profile>
<id>npm-snapshot-predependency</id>
<activation>
<property>
<name>!master_npm_release_build</name>
</property>
</activation>
<properties>
<master_skip_snapshot_predependency>false</master_skip_snapshot_predependency>
</properties>
</profile>
<profile>
<id>npm-snapshot-postdependency</id>
<activation>
<property>
<name>!master_npm_release_build</name>
</property>
</activation>
<properties>
<master_skip_snapshot_postdependency>false</master_skip_snapshot_postdependency>
</properties>
</profile>
<profile>
<id>npm-release-predependency</id>
<activation>
<property>
<name>master_npm_release_build</name>
<value>true</value>
</property>
</activation>
<properties>
<master_skip_release_predependency>false</master_skip_release_predependency>
</properties>
</profile>
<profile>
<id>npm-release-postdependency</id>
<activation>
<property>
<name>master_npm_release_build</name>
<value>true</value>
</property>
</activation>
<properties>
<master_skip_release_postdependency>false</master_skip_release_postdependency>
</properties>
</profile>
<profile>
<id>npm-run-full-build</id>
<activation>
<file>
<exists>${basedir}/package.json</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<configuration>
<installDirectory>target</installDirectory>
<nodeDownloadRoot>${master_nodeDownloadRoot}</nodeDownloadRoot>
</configuration>
<executions>
<execution>
<id>install-node-and-npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>initialize</phase>
<configuration>
<nodeVersion>${master_node_version}</nodeVersion>
</configuration>
</execution>
<execution>
<id>install-pnpm</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<arguments>install -g --prefix ./target/node pnpm@${master_pnpm_version}</arguments> <!-- explicitly specify pnpm version to use -->
</configuration>
</execution>
<execution>
<id>install-scout-releng</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<arguments>install -g --prefix ./target/node @eclipse-scout/releng@${master_scout_releng_version}</arguments>
</configuration>
</execution>
<execution>
<id>npm-run-build:prod</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<skip>${master_skip_npm_build_prod}</skip>
<arguments>run build:prod</arguments>
</configuration>
</execution>
<execution>
<id>npm-run-build:dev</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<skip>${master_skip_npm_build_dev}</skip>
<arguments>run build:dev</arguments>
</configuration>
</execution>
<execution>
<id>javascript-test</id>
<goals>
<goal>npm</goal>
</goals>
<phase>test</phase>
<configuration>
<skip>${master_skip_karma_test}</skip>
<arguments>run test:ci</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>pnpm-update</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/target/node/node</executable>
<arguments>
<argument>${basedir}/target/node${master_npm_subdir}/pnpm/bin/pnpm.js</argument>
<argument>update</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>scout-releng-snapshot-install-dependency</id>
<phase>process-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${master_skip_snapshot_predependency}</skip>
<executable>${basedir}/target/node/node</executable>
<arguments>
<argument>${basedir}/target/node${master_npm_subdir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
<argument>snapshot-install-dependency</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>scout-releng-snapshot-publish-dependency</id>
<phase>process-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${master_skip_snapshot_postdependency}</skip>
<executable>${basedir}/target/node/node</executable>
<arguments>
<argument>${basedir}/target/node${master_npm_subdir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
<argument>snapshot-publish-dependency</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>scout-releng-release-install-dependency</id>
<phase>process-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${master_skip_release_predependency}</skip>
<executable>${basedir}/target/node/node</executable>
<commandlineArgs>${basedir}/target/node${master_npm_subdir}/@eclipse-scout/releng/bin/releng-scripts.js release-install-dependency ${master_npm_release_dependency_mapping}</commandlineArgs>
</configuration>
</execution>
<execution>
<id>scout-releng-release-publish-dependency</id>
<phase>process-sources</phase> <!-- for release use process-source instead of resources. post-dependency is therefore executed BEFORE the pnpm update (in snapshot it is executed afterwards) -->
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${master_skip_release_postdependency}</skip>
<executable>${basedir}/target/node/node</executable>
<arguments>
<argument>${basedir}/target/node${master_npm_subdir}/@eclipse-scout/releng/bin/releng-scripts.js</argument>
<argument>release-publish-dependency</argument>
<argument>--newVersion=${master_release_newVersion}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-webpack-build-output</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<skip>${master_skip_copy_webpack_build_output}</skip>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>dist</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>