| <?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.11.0-SNAPSHOT</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> |
| |
| <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_rt_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_rt_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> |