| <?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.nemo</groupId> |
| <artifactId>nemo-project</artifactId> |
| <version>0.4-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| <name>Nemo Project</name> |
| |
| <scm> |
| <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-nemo.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-nemo.git</developerConnection> |
| <url>https://github.com/apache/incubator-nemo/tree/${project.scm.tag}</url> |
| <tag>master</tag> |
| </scm> |
| |
| <properties> |
| <java.version>1.8</java.version> |
| <maven.compiler.source>${java.version}</maven.compiler.source> |
| <maven.compiler.target>${java.version}</maven.compiler.target> |
| <maven.compiler.version>3.10.1</maven.compiler.version> |
| <maven.shade.version>3.2.4</maven.shade.version> <!-- 3.3.0 doesn't work on mac --> |
| <maven.deploy.version>3.0.0</maven.deploy.version> |
| <maven.javadoc.version>3.4.0</maven.javadoc.version> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <auto-service.version>1.0.1</auto-service.version> |
| <beam.version>2.24.0</beam.version> <!-- > 2.25 needs migration --> |
| <spark.version>2.4.4</spark.version> |
| <scala.version>2.12.10</scala.version> |
| <kryo.version>4.0.2</kryo.version> |
| <reef.version>0.16.0</reef.version> |
| <protobuf.version>3.21.2</protobuf.version> |
| <hadoop.version>2.7.2</hadoop.version> |
| <log4j.configuration>file://log4j.properties</log4j.configuration> |
| <netty.version>4.1.79.Final</netty.version> |
| <guava.version>31.1-jre</guava.version> |
| <grpc.version>1.46.0</grpc.version> <!-- > 1.47.0 needs migration --> |
| <jackson.version>2.10.5</jackson.version> <!-- > 2.11 needs migration --> |
| <netlib.version>1.1.2</netlib.version> |
| <jetty-server.version>9.4.48.v20220622</jetty-server.version> |
| <jetty-servlet.version>9.4.48.v20220622</jetty-servlet.version> |
| <commons-math.version>3.6.1</commons-math.version> |
| <commons-lang.version>3.12.0</commons-lang.version> |
| <commons-io.version>2.11.0</commons-io.version> |
| <lz4.version>1.8.0</lz4.version> |
| <sqlite-jdbc.version>3.36.0.3</sqlite-jdbc.version> |
| <postgresql.version>42.4.0</postgresql.version> |
| <slf4j.version>1.7.36</slf4j.version> |
| <!-- Tests --> |
| <mockito.version>3.12.4</mockito.version> |
| <powermock.version>2.0.9</powermock.version> |
| <surefire.version>3.0.0-M7</surefire.version> |
| <junit.version>4.13.2</junit.version> |
| <checkstyle.version>9.3</checkstyle.version> |
| </properties> |
| |
| <modules> |
| <module>conf</module> |
| <module>client</module> |
| <module>common</module> |
| <module>compiler</module> |
| <module>examples</module> |
| <module>runtime</module> |
| </modules> |
| |
| <dependencies> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>${protobuf.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.xerial.snappy</groupId> |
| <artifactId>snappy-java</artifactId> |
| <version>1.1.8.4</version> |
| </dependency> |
| <!--tests--> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>${mockito.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-module-junit4</artifactId> |
| <version>${powermock.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-api-mockito2</artifactId> |
| <version>${powermock.version}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <dependencyManagement> |
| <dependencies> |
| <!-- Follow netty version of grpc which is more later than the netty version of reef-wake --> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-all</artifactId> |
| <version>${netty.version}</version> |
| </dependency> |
| <!-- Follow guava version of grpc --> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>${guava.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <version>${slf4j.version}</version> |
| </dependency> |
| <dependency> |
| <!-- |
| This is needed to view the logs when running unit tests. |
| See https://dzone.com/articles/how-configure-slf4j-different for details. |
| --> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-simple</artifactId> |
| <version>${slf4j.version}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <extensions> |
| <extension> |
| <groupId>kr.motd.maven</groupId> |
| <artifactId>os-maven-plugin</artifactId> |
| <version>1.7.0</version> |
| </extension> |
| </extensions> |
| |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${maven.compiler.version}</version> |
| <!-- Uncomment when dropping support for Java 8 --> |
| <!--<configuration>--> |
| <!-- <release>${java.version}</release>--> |
| <!--</configuration>--> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire.version}</version> |
| <configuration> |
| <!-- Useful for debugging: See https://stackoverflow.com/a/16941432 --> |
| <trimStackTrace>false</trimStackTrace> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>3.2.0</version> |
| <dependencies> |
| <dependency> |
| <groupId>com.puppycrawl.tools</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>${checkstyle.version}</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>validate</id> |
| <phase>validate</phase> |
| <configuration> |
| <configLocation>checkstyle.xml</configLocation> |
| <headerLocation>checkstyle.license</headerLocation> |
| <encoding>UTF-8</encoding> |
| <consoleOutput>true</consoleOutput> |
| <failsOnError>true</failsOnError> |
| <excludes>**/org/apache/reef/**/*</excludes> |
| </configuration> |
| <goals> |
| <goal>check</goal> |
| <goal>checkstyle</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>${surefire.version}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.3.0</version> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${project.basedir}/target/generated-sources/</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>0.6.1</version> |
| <configuration> |
| <pluginId>grpc-java</pluginId> |
| <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> |
| <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compile</goal> |
| <goal>compile-custom</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${maven.javadoc.version}</version> |
| <configuration> |
| <excludePackageNames>*.org.apache.nemo.runtime.common.comm:*.compiler.frontend.spark.*</excludePackageNames> |
| <outputDirectory>docs/apidocs</outputDirectory> |
| <reportOutputDirectory>docs/apidocs</reportOutputDirectory> |
| <detectJavaApiLink>false</detectJavaApiLink> |
| </configuration> |
| <executions> |
| <execution> |
| <id>aggregate</id> |
| <goals> |
| <goal>aggregate</goal> |
| </goals> |
| <phase>site</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <version>0.13</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <excludes> |
| <!-- Markdown files such as README.md --> |
| <exclude>**/*.md</exclude> |
| <!-- Git files --> |
| <exclude>.gitattributes</exclude> |
| <exclude>.gitignore</exclude> |
| <exclude>.git/**</exclude> |
| <!-- Intellij idea project files --> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| <!-- Maven build files --> |
| <exclude>**/target/**</exclude> |
| <exclude>.factorypath</exclude> |
| <exclude>**/dependency-reduced-pom.xml</exclude> |
| <!-- REEF run files --> |
| <exclude>**/REEF_LOCAL_RUNTIME/**</exclude> |
| <!-- Resources --> |
| <exclude>**/resources/**</exclude> |
| <!-- Logs --> |
| <exclude>**/*.log</exclude> |
| <!-- Web UI --> |
| <exclude>webui/.nuxt/**</exclude> |
| <exclude>webui/node_modules/**</exclude> |
| <exclude>**/*.json</exclude> |
| <exclude>**/.editorconfig</exclude> |
| <exclude>**/config.gypi</exclude> |
| <!-- ML --> |
| <exclude>**/*.txt</exclude> |
| <exclude>**/*.out</exclude> |
| <exclude>venv/**</exclude> |
| <!-- EditorConfig --> |
| <exclude>.editorconfig</exclude> |
| <!-- formatter.xml --> |
| <exclude>formatter.xml</exclude> |
| <!-- javadoc --> |
| <exclude>**/docs/**</exclude> |
| <!-- dag files --> |
| <exclude>**/dag/**</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <version>${maven.shade.version}</version> |
| <configuration> |
| <filters> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |