| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <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.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>23</version> |
| </parent> |
| |
| <groupId>org.apache.wayang</groupId> |
| <artifactId>wayang</artifactId> |
| <version>0.6.0-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <name>Apache Wayang</name> |
| <description> |
| Apache Wayang is a tool to build platform-agnostic data processing apps and have them both optimized for and |
| executed on multiple different execution platforms, such as Java Streams and Apache Spark. |
| </description> |
| |
| <url>https://wayang.apache.org</url> |
| <inceptionYear>2020</inceptionYear> |
| |
| <organization> |
| <name>The Apache Software Foundation</name> |
| <url>https://www.apache.org/</url> |
| </organization> |
| |
| <licenses> |
| <license> |
| <name>Apache License, Version 2.0</name> |
| <url>https://www.apache.org/licenses/LICENSE-2.0</url> |
| <distribution>repo</distribution> |
| <comments> |
| Apache Wayang is an effort undergoing incubation at The Apache Software |
| Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required |
| of all newly accepted projects until a further review indicates that the |
| infrastructure, communications, and decision making process have stabilized in |
| a manner consistent with other successful ASF projects. While incubation status |
| is not necessarily a reflection of the completeness or stability of the code, |
| it does indicate that the project has yet to be fully endorsed by the ASF. |
| </comments> |
| </license> |
| </licenses> |
| |
| <scm> |
| <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-wayang.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-wayang.git</developerConnection> |
| <url>https://github.com/apache/incubator-wayang</url> |
| </scm> |
| |
| <issueManagement> |
| <system>JIRA</system> |
| <url>https://issues.apache.org/jira/browse/WAYANG</url> |
| </issueManagement> |
| |
| <mailingLists> |
| <mailingList> |
| <name>Apache Wayang Developer List</name> |
| <subscribe>mailto:dev-subscribe@wayang.apache.org</subscribe> |
| <unsubscribe>mailto:dev-unsubscribe@wayang.apache.org</unsubscribe> |
| <post>mailto:dev@wayang.apache.org</post> |
| <archive>http://mail-archives.apache.org/mod_mbox/wayang-dev/</archive> |
| </mailingList> |
| <mailingList> |
| <name>Apache Wayang Commits List</name> |
| <subscribe>mailto:commits-subscribe@wayang.apache.org</subscribe> |
| <unsubscribe>mailto:commits-unsubscribe@wayang.apache.org</unsubscribe> |
| <post>mailto:commits@wayang.apache.org</post> |
| <archive>http://mail-archives.apache.org/mod_mbox/wayang-commits/</archive> |
| </mailingList> |
| </mailingLists> |
| |
| <properties> |
| <maven.compiler.source>1.8</maven.compiler.source> |
| <maven.compiler.target>1.8</maven.compiler.target> |
| <encoding>UTF-8</encoding> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.root>${basedir}</project.root> |
| <source.level>1.8</source.level> |
| <dist.id>${project.artifactId}</dist.id> |
| <jacoco.destfile>${project.build.directory}/jacoco.exec</jacoco.destfile> |
| <maven.kotlin.skip>false</maven.kotlin.skip> |
| |
| <assertj.version>3.17.2</assertj.version> |
| <commons-io.version>2.5</commons-io.version> |
| <guava.version>19.0</guava.version> |
| <hamcrest.version>1.3</hamcrest.version> |
| <jackson.version>2.11.2</jackson.version> |
| <jacoco.version>0.8.5</jacoco.version> |
| <jodatime.version>2.10.6</jodatime.version> |
| <jsonpath.version>2.4.0</jsonpath.version> |
| <junit5.version>5.6.1</junit5.version> |
| <mockito.version>3.5.10</mockito.version> |
| <mockk.version>1.10.0</mockk.version> |
| <external.platforms.scope>provided</external.platforms.scope> |
| <hadoop.version>2.7.7</hadoop.version> |
| <!-- To be overridden by individual modules --> |
| <java-module-name>org.apache.wayang.default</java-module-name> |
| <scala.version>2.11.12</scala.version> |
| <scala.mayor.version>2.11</scala.mayor.version> |
| <code.coverage.project.folder>${basedir}/</code.coverage.project.folder> |
| <code.coverage.overall.data.folder>${basedir}/target/aggregate.exec</code.coverage.overall.data.folder> |
| </properties> |
| |
| <!-- Make Snapshots of Apache projects available --> |
| <repositories> |
| <repository> |
| <id>apache-snapshots</id> |
| <url>https://repository.apache.org/content/repositories/snapshots</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </repository> |
| </repositories> |
| |
| <!-- Make Snapshots of Apache plugins available --> |
| <pluginRepositories> |
| <pluginRepository> |
| <id>apache-snapshots</id> |
| <url>https://repository.apache.org/content/repositories/snapshots</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </pluginRepository> |
| </pluginRepositories> |
| |
| |
| |
| <profiles> |
| <profile> |
| <!-- Include the external platforms in the build. --> |
| <id>standalone</id> |
| <properties> |
| <external.platforms.scope>compile</external.platforms.scope> |
| </properties> |
| </profile> |
| <profile> |
| <id>distro</id> |
| <modules> |
| <module>wayang-distro</module> |
| </modules> |
| </profile> |
| <profile> |
| <!-- Profile to be activated when building the docs artifacts. --> |
| <id>build-docs</id> |
| <properties> |
| <shared.resources>${project.build.directory}/shared-resources</shared.resources> |
| <maven.main.skip>false</maven.main.skip> |
| <maven.test.skip>false</maven.test.skip> |
| <maven.install.skip>false</maven.install.skip> |
| <maven.deploy.skip>false</maven.deploy.skip> |
| <skipTests>false</skipTests> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.wayang</groupId> |
| <artifactId>wayang-resources</artifactId> |
| <version>0.6.0-SNAPSHOT</version> |
| <type>zip</type> |
| <optional>true</optional> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <!-- Configures JavaDoc generation. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>aggregate-javadoc</id> |
| <goals> |
| <goal>aggregate-no-fork</goal> |
| </goals> |
| <phase>package</phase> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.jfrog.buildinfo</groupId> |
| <artifactId>artifactory-maven-plugin</artifactId> |
| </plugin> |
| |
| </plugins> |
| |
| </build> |
| </profile> |
| |
| <profile> |
| <!-- Perform steps to deploy Wayang. --> |
| <id>deployment</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-gpg-plugin</artifactId> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <!-- Perform steps to deploy Wayang. --> |
| <id>deployment-dryrun</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| |
| <profile> |
| |
| <!-- Profile to be run on the CI server, JARs JavaDocs --> |
| <id>ci</id> |
| <build> |
| <plugins> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>package-javadoc</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| <phase>package</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <configuration> |
| <configLocation>google_checks.xml</configLocation> |
| <includes>**/*</includes> |
| <excludes> |
| **/.flattened-pom.xml,.git/**/*,target/**/*,**/target/**/*,.idea/**/*,**/spring.schemas,**/*.svg,mvnw,mvnw.cmd,**/*.graphml,work/**/* |
| </excludes> |
| <sourceDirectories>./</sourceDirectories> |
| </configuration> |
| <executions> |
| <execution> |
| <phase> |
| validate |
| </phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- Used to build Java 11+ --> |
| <profile> |
| <id>java11</id> |
| <properties> |
| <jaxb.version>2.2.11</jaxb.version> |
| <java-activation.version>1.1.1</java-activation.version> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <version>${jaxb.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.activation</groupId> |
| <artifactId>activation</artifactId> |
| <version>${java-activation.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>${javax-annotation-api}</version> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| <!-- The compilation of java 11 is only possible in a select number of modules, |
| it's necessary to fix this a soon as possible |
| --> |
| <modules> |
| <module>wayang-api</module> |
| <module>wayang-commons/wayang-core</module> |
| <module>wayang-commons/wayang-basic</module> |
| </modules> |
| </profile> |
| |
| <!-- |
| Profile to be run before a release is executed, currently does the following: |
| |
| - Prevents thrid-party snapshot dependencies in projects |
| --> |
| <!-- TODO: This is actually automatically done by the maven-release-plugin:prepare goal Therefore if could be removed --> |
| <profile> |
| <id>pre-release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-no-third-party-snapshots</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireReleaseDeps> |
| <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot> |
| <excludes> |
| <exclude>org.apache.wayang:*</exclude> |
| </excludes> |
| </requireReleaseDeps> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| |
| <profile> |
| <id>scala</id> |
| <activation> |
| <file> |
| <exists>src/main/scala</exists> |
| </file> |
| </activation> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>net.alchim31.maven</groupId> |
| <artifactId>scala-maven-plugin</artifactId> |
| <version>4.4.0</version> |
| <executions> |
| <execution> |
| <id>compile-scala</id> |
| <goals> |
| <goal>compile</goal> |
| <goal>testCompile</goal> |
| </goals> |
| <configuration> |
| <scalaVersion>${scala.version}</scalaVersion> |
| <sourceDir>${project.build.sourceDirectory}/../scala</sourceDir> |
| <testSourceDir>${project.build.testSourceDirectory}/../scala</testSourceDir> |
| </configuration> |
| </execution> |
| <execution> |
| <id>add-scala-src</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| </execution> |
| <!-- Getting strange CNFE errors: |
| java.lang.NoClassDefFoundError: javax/tools/ToolProvider |
| --> |
| <!--execution> |
| <id>generate-scaladoc</id> |
| <goals> |
| <goal>doc-jar</goal> |
| </goals> |
| </execution--> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>default-jar</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| <phase>package</phase> |
| <configuration> |
| <finalName>${project.artifactId}-${project.version}_${scala.mayor.version}</finalName> |
| <skipIfEmpty>true</skipIfEmpty> |
| <excludes> |
| <exclude>*.timestamp</exclude> |
| </excludes> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>net.alchim31.maven</groupId> |
| <artifactId>scala-maven-plugin</artifactId> |
| </plugin> |
| <!-- <plugin>--> |
| <!-- <artifactId>maven-jar-plugin</artifactId>--> |
| <!-- </plugin>--> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>scala-11</id> |
| <properties> |
| <scala.version>2.11.12</scala.version> |
| <scala.mayor.version>2.11</scala.mayor.version> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>scala-12</id> |
| <properties> |
| <scala.version>2.12.12</scala.version> |
| <scala.mayor.version>2.12</scala.mayor.version> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>scala-13</id> |
| <properties> |
| <scala.version>2.13.3</scala.version> |
| <scala.mayor.version>2.13</scala.mayor.version> |
| </properties> |
| </profile> |
| |
| |
| <profile> |
| <id>antlr</id> |
| <activation> |
| <file> |
| <exists>src/main/antlr4</exists> |
| </file> |
| </activation> |
| <properties> |
| <antlr.version>4.9.1</antlr.version> |
| </properties> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <!-- trigger run with mvn process-resouces; then see target/generated-sources/antlr4 --> |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-maven-plugin</artifactId> |
| <version>${antlr.version}</version> |
| <executions> |
| <execution> |
| <id>run-antlr</id> |
| <goals> |
| <goal>antlr4</goal> |
| </goals> |
| <configuration> |
| <visitor>true</visitor> |
| <sourceDirectory>${project.build.sourceDirectory}/../antlr4</sourceDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <!-- trigger run with mvn process-resouces; then see target/generated-sources/antlr4 --> |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4-maven-plugin</artifactId> |
| </plugin> |
| </plugins> |
| </build> |
| <dependencies> |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr4</artifactId> |
| <version>${antlr.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| </dependencies> |
| </profile> |
| |
| <profile> |
| <id>add-dependencies</id> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>3.1.2</version> |
| <executions> |
| <execution> |
| <id>copy-dependencies</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>copy-dependencies</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.build.directory}/lib</outputDirectory> |
| <overWriteReleases>false</overWriteReleases> |
| <overWriteSnapshots>false</overWriteSnapshots> |
| <overWriteIfNewer>true</overWriteIfNewer> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </profile> |
| |
| <!-- Allows skipping of the pre-flight-check as needed when deploying on jenkins --> |
| <profile> |
| <id>skip-prerequisite-check</id> |
| <activation> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Make some additional properties available to simplify keeping some content up to date --> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <version>2.1.1</version> |
| <executions> |
| <!-- Do some pre-build checks and report any findings to the user --> |
| <execution> |
| <id>prerequisite-check</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <inherited>false</inherited> |
| <configuration> |
| <source> |
| print "\nSkipping prerequisite-check\n\n" |
| </source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- Profile for linux (Self-Enabling) --> |
| <profile> |
| <id>os-unix</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>linux</os.suffix> |
| <os.classifier>linux-x86_64</os.classifier> |
| </properties> |
| </profile> |
| <!-- Profile for mac (Self-Enabling) --> |
| <profile> |
| <id>os-mac</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>mac</os.suffix> |
| <os.classifier>mac-x86_64</os.classifier> |
| </properties> |
| </profile> |
| <!-- profile for windows (Self-Enabling) --> |
| <profile> |
| <id>os-windows</id> |
| <activation> |
| <os> |
| <family>windows</family> |
| </os> |
| </activation> |
| <properties> |
| <os.suffix>win</os.suffix> |
| <os.classifier>windows-x86_64</os.classifier> |
| </properties> |
| </profile> |
| |
| </profiles> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>com.fasterxml.jackson</groupId> |
| <artifactId>jackson-bom</artifactId> |
| <version>${jackson.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit</groupId> |
| <artifactId>junit-bom</artifactId> |
| <version>${junit5.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <!-- Logging --> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-bom</artifactId> |
| <version>2.14.0</version> |
| <scope>import</scope> |
| <type>pom</type> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-library</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <dependencies> |
| |
| <!-- Test --> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.vintage</groupId> |
| <artifactId>junit-vintage-engine</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>${mockito.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <version>${mockito.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <version>${assertj.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- Coverage --> |
| <!-- TODO: add the coverage elements --> |
| |
| </dependencies> |
| |
| <build> |
| |
| <!-- |
| Default versioned declarations of managed plugins |
| to be overridden when the distribute profile is active. |
| If this section was missing, Maven would complain about |
| missing version numbers for executions without the |
| profile active. |
| --> |
| |
| <pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.openclover</groupId> |
| <artifactId>clover-maven-plugin</artifactId> |
| <version>4.2.1</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <version>2.6</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>3.0.0</version> |
| </plugin> |
| |
| |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.8.1</version> |
| <configuration> |
| <forceJavacCompilerUse>true</forceJavacCompilerUse> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>3.1.1</version> |
| <dependencies> |
| <dependency> |
| <groupId>com.puppycrawl.tools</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>8.33</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>3.1.2</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-deploy-plugin</artifactId> |
| <version>3.0.0-M1</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>3.0.0-M3</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>2.19.1</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <trimStackTrace>false</trimStackTrace> |
| <enableAssertions>true</enableAssertions> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>3.2.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>2.10.4</version> |
| <executions> |
| <execution> |
| <id>attach-javadocs</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <additionalparam>-Xdoclint:none</additionalparam> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>3.0.1</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-surefire-plugin</artifactId> |
| <version>3.0.0-M5</version> |
| <configuration> |
| <useSystemClassLoader>false</useSystemClassLoader> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.1.0</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.jfrog.buildinfo</groupId> |
| <artifactId>artifactory-maven-plugin</artifactId> |
| <version>2.7.0</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <version>3.7</version> |
| <configuration> |
| |
| </configuration> |
| </plugin> |
| </plugins> |
| |
| </pluginManagement> |
| |
| <plugins> |
| <!-- Make some additional properties available to simplify keeping some content up to date --> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <executions> |
| <!-- Do some pre-build checks and report any findings to the user --> |
| <execution> |
| <id>prerequisite-check</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <inherited>false</inherited> |
| <configuration> |
| <source>${project.basedir}/src/main/script/prerequisiteCheck.groovy</source> |
| </configuration> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| <version>2.10.8</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <!-- Fail the build if files don't have a valid header --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>license-check</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <!-- Right now this would fail the build as not all files have Apache headers --> |
| <!-- TODO: Enable asap --> |
| <useMavenDefaultExcludes>true</useMavenDefaultExcludes> |
| <!-- |
| Make rat output the files with missing licensed directly into the |
| build output (This way we don't have to look into the rat.txt to find |
| out which ones) |
| --> |
| <consoleOutput>true</consoleOutput> |
| <excludes> |
| <!-- Git related files --> |
| <exclude>**/.git/**</exclude> |
| <exclude>**/.gitignore</exclude> |
| |
| <!-- Maven related files --> |
| <exclude>**/target/**</exclude> |
| <exclude>target/**</exclude> |
| |
| <!-- Eclipse related files --> |
| <exclude>**/.project</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.classpath</exclude> |
| <exclude>**/.factorypath</exclude> |
| |
| <!-- IntelliJ related files --> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| |
| <exclude>**/*.yaml</exclude> |
| |
| <exclude>**/*.log</exclude> |
| <exclude>**/0-to-10000.sequence_file</exclude> |
| |
| <exclude>**/*.svg</exclude> |
| <exclude>**/Gemfile.lock</exclude> |
| <!-- TODO: I am pretty sure we need to remove this and replace it with a different text --> |
| <exclude>src/test/resources/ulysses.txt</exclude> |
| <exclude>src/test/resources/test.edgelist</exclude> |
| <exclude>src/test/resources/*.txt</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <!-- Generate the legally required text files in the jars --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>process-resource-bundles</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} --> |
| <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle> |
| <!-- Will generate META-INF/DISCLAIMER --> |
| <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle> |
| </resourceBundles> |
| <!-- Content in this directory will be appended to generated resources --> |
| <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <source>${source.level}</source> |
| <target>${source.level}</target> |
| </configuration> |
| <executions> |
| <execution> |
| <id>default-compile</id> |
| <phase>none</phase> |
| </execution> |
| <execution> |
| <id>default-testCompile</id> |
| <phase>none</phase> |
| </execution> |
| <execution> |
| <id>java-compile</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>java-test-compile</id> |
| <phase>test-compile</phase> |
| <goals> |
| <goal>testCompile</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <useSystemClassLoader>false</useSystemClassLoader> |
| <useFile>false</useFile> |
| <includes> |
| <include>**/*Tests.java</include> |
| <include>**/*Test.java</include> |
| </includes> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <configuration> |
| <archive> |
| <manifestEntries> |
| <Implementation-Title>${project.name}</Implementation-Title> |
| <Implementation-Version>${project.version}</Implementation-Version> |
| <!--Automatic-Module-Name>${java-module-name}</Automatic-Module-Name--> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <locale>en_US</locale> |
| <breakiterator>true</breakiterator> |
| <header>${project.name}</header> |
| <source>${source.level}</source> |
| <quiet>true</quiet> |
| <javadocDirectory>${shared.resources}/javadoc</javadocDirectory> |
| <overview>${shared.resources}/javadoc/overview.html</overview> |
| <!-- copies doc-files subdirectory which contains image resources --> |
| <docfilessubdirs>true</docfilessubdirs> |
| <additionalOptions> |
| <additionalOption>-Xdoclint:none</additionalOption> |
| </additionalOptions> |
| <links> |
| <link>https://docs.oracle.com/javase/8/docs/api/</link> |
| </links> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-maven-version</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireMavenVersion> |
| <version>3.5.0</version> |
| </requireMavenVersion> |
| <requireJavaVersion> |
| <version>1.8</version> |
| </requireJavaVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.8.3</version> |
| <executions> |
| <execution> |
| <id>coverage-initialize</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>coverage-report</id> |
| <phase>post-integration-test</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| </execution> |
| <!-- TODO addd the check to the minimum coverage --> |
| <!-- <!– Threshold –>--> |
| <!-- <execution>--> |
| <!-- <id>coverage-check</id>--> |
| <!-- <goals>--> |
| <!-- <goal>check</goal>--> |
| <!-- </goals>--> |
| <!-- </execution>--> |
| <execution> |
| <id>report-aggregate</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>report-aggregate</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>merge-results</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>merge</goal> |
| </goals> |
| <configuration> |
| <fileSets> |
| <fileSet> |
| <directory>${code.coverage.project.folder}</directory> |
| <includes> |
| <include>**/target/jacoco.exec</include> |
| </includes> |
| </fileSet> |
| </fileSets> |
| <destFile>${code.coverage.overall.data.folder}/aggregate.exec</destFile> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| </plugins> |
| </build> |
| |
| <modules> |
| <module>wayang-commons</module> |
| <module>wayang-platforms</module> |
| <module>wayang-tests-integration</module> |
| <module>wayang-api</module> |
| <module>wayang-profiler</module> |
| <module>wayang-extensions</module> |
| <module>wayang-resources</module> |
| <module>wayang-docs</module> |
| </modules> |
| </project> |