Search
Close this search box.

Working with complex and multi-module Maven projects can be a handful.

These are a few tips to make that easier. I’m going to use Apache Beam as an example of a multi-module Maven project.

The first helpful command is to list all of the modules. To do this run mvn help:all-profiles and that will output:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] Apache Beam :: Parent
[INFO] Apache Beam :: SDKs :: Java :: Build Tools
[INFO] Apache Beam :: SDKs
[INFO] Apache Beam :: SDKs :: Java
[INFO] Apache Beam :: SDKs :: Java :: Core
[INFO] Apache Beam :: Runners
[INFO] Apache Beam :: Runners :: Core Java
[INFO] Apache Beam :: Runners :: Direct Java
[INFO] Apache Beam :: Runners :: Google Cloud Dataflow
[INFO] Apache Beam :: SDKs :: Java :: IO
[INFO] Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform
[INFO] Apache Beam :: SDKs :: Java :: IO :: HDFS
[INFO] Apache Beam :: SDKs :: Java :: IO :: JMS
[INFO] Apache Beam :: SDKs :: Java :: IO :: Kafka
[INFO] Apache Beam :: SDKs :: Java :: IO :: Kinesis
[INFO] Apache Beam :: SDKs :: Java :: IO :: MongoDB
[INFO] Apache Beam :: SDKs :: Java :: IO :: JDBC
[INFO] Apache Beam :: SDKs :: Java :: IO :: MQTT
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Starter
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples - Java 8
[INFO] Apache Beam :: SDKs :: Java :: Extensions
[INFO] Apache Beam :: SDKs :: Java :: Extensions :: Join library
[INFO] Apache Beam :: SDKs :: Java :: Extensions :: Sorter
[INFO] Apache Beam :: SDKs :: Java :: Java 8 Tests
[INFO] Apache Beam :: Runners :: Flink
[INFO] Apache Beam :: Runners :: Flink :: Core
[INFO] Apache Beam :: Runners :: Flink :: Examples
[INFO] Apache Beam :: Runners :: Spark
[INFO] Apache Beam :: Runners :: Apex
[INFO] Apache Beam :: Examples
[INFO] Apache Beam :: Examples :: Java
[INFO] Apache Beam :: Examples :: Java 8
[INFO] Listing Profiles for Project: org.apache.beam:beam-parent:pom:0.5.0-SNAPSHOT
  Profile Id: doclint-java8-disable (Active: true , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-build-tools:jar:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-parent:pom:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-parent:pom:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: true , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-core:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-parent:pom:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-core-java:jar:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-direct-java:jar:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-google-cloud-dataflow-java:jar:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-parent:pom:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-hdfs:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-jms:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-kafka:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-kinesis:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-mongodb:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-jdbc:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-io-mqtt:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-maven-archetypes-parent:pom:0.5.0-SNAPSHOT
  Profile Id: beam-sdks-java-archetypes-examples (Active: true , Source: pom)
  Profile Id: beam-sdks-java-archetypes-examples-java8 (Active: true , Source: pom)
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-maven-archetypes-starter:maven-archetype:0.5.0-SNAPSHOT
  Profile Id: beam-sdks-java-archetypes-examples (Active: false , Source: pom)
  Profile Id: beam-sdks-java-archetypes-examples-java8 (Active: false , Source: pom)
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-maven-archetypes-examples:maven-archetype:0.5.0-SNAPSHOT
  Profile Id: beam-sdks-java-archetypes-examples (Active: false , Source: pom)
  Profile Id: beam-sdks-java-archetypes-examples-java8 (Active: false , Source: pom)
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-maven-archetypes-examples-java8:maven-archetype:0.5.0-SNAPSHOT
  Profile Id: beam-sdks-java-archetypes-examples (Active: false , Source: pom)
  Profile Id: beam-sdks-java-archetypes-examples-java8 (Active: false , Source: pom)
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-extensions-parent:pom:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-extensions-join-library:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-extensions-sorter:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-sdks-java-java8tests:jar:0.5.0-SNAPSHOT
  Profile Id: java8-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-flink-parent:pom:0.5.0-SNAPSHOT
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-flink_2.10:jar:0.5.0-SNAPSHOT
  Profile Id: local-runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-flink_2.10-examples:jar:0.5.0-SNAPSHOT
  Profile Id: disable-runnable-on-service-tests (Active: true , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-spark:jar:0.5.0-SNAPSHOT
  Profile Id: jacoco (Active: false , Source: pom)
  Profile Id: local-runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-runners-apex:jar:0.5.0-SNAPSHOT
  Profile Id: local-runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: runnable-on-service-tests (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-examples-parent:pom:0.5.0-SNAPSHOT
  Profile Id: java8 (Active: true , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-examples-java:jar:0.5.0-SNAPSHOT
  Profile Id: direct-runner (Active: true , Source: pom)
  Profile Id: apex-runner (Active: false , Source: pom)
  Profile Id: flink-runner (Active: false , Source: pom)
  Profile Id: spark-runner (Active: false , Source: pom)
  Profile Id: dataflow-runner (Active: false , Source: pom)
  Profile Id: jenkins-precommit (Active: false , Source: pom)
  Profile Id: disable-streaming-ITs (Active: false , Source: pom)
  Profile Id: java8 (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)
Listing Profiles for Project: org.apache.beam:beam-examples-java8:jar:0.5.0-SNAPSHOT
  Profile Id: include-runners (Active: true , Source: pom)
  Profile Id: java8 (Active: false , Source: pom)
  Profile Id: release (Active: false , Source: pom)
  Profile Id: doclint-java8-disable (Active: false , Source: pom)
  Profile Id: java7-packageinfo (Active: false , Source: pom)
  Profile Id: eclipse-jdt (Active: false , Source: pom)
  Profile Id: apache-release (Active: false , Source: pom)

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Beam :: Parent .............................. SUCCESS [  0.234 s]
[INFO] Apache Beam :: SDKs :: Java :: Build Tools ......... SKIPPED
[INFO] Apache Beam :: SDKs ................................ SKIPPED
[INFO] Apache Beam :: SDKs :: Java ........................ SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Core ................ SKIPPED
[INFO] Apache Beam :: Runners ............................. SKIPPED
[INFO] Apache Beam :: Runners :: Core Java ................ SKIPPED
[INFO] Apache Beam :: Runners :: Direct Java .............. SKIPPED
[INFO] Apache Beam :: Runners :: Google Cloud Dataflow .... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO .................. SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: HDFS .......... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: JMS ........... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: Kafka ......... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: Kinesis ....... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: MongoDB ....... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: JDBC .......... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: IO :: MQTT .......... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes .... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Starter SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Maven Archetypes :: Examples - Java 8 SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Extensions .......... SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Extensions :: Join library SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Extensions :: Sorter  SKIPPED
[INFO] Apache Beam :: SDKs :: Java :: Java 8 Tests ........ SKIPPED
[INFO] Apache Beam :: Runners :: Flink .................... SKIPPED
[INFO] Apache Beam :: Runners :: Flink :: Core ............ SKIPPED
[INFO] Apache Beam :: Runners :: Flink :: Examples ........ SKIPPED
[INFO] Apache Beam :: Runners :: Spark .................... SKIPPED
[INFO] Apache Beam :: Runners :: Apex ..................... SKIPPED
[INFO] Apache Beam :: Examples ............................ SKIPPED
[INFO] Apache Beam :: Examples :: Java .................... SKIPPED
[INFO] Apache Beam :: Examples :: Java 8 .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.480 s
[INFO] Finished at: 2016-12-28T20:47:11-05:00
[INFO] Final Memory: 26M/162M
[INFO] ------------------------------------------------------------------------

Choosing a Module

From there, you can choose which module you want to start working with. In my case, I wanted to work with beam-sdks-java-core. From here, we can run a Maven command to start working with that module mvn verify -pl org.apache.beam:beam-sdks-java-core.

Unit Testing

For some of the unit tests in Beam, there are categories. These categories need a runner. In Beam, these are marked with @Category(NeedsRunner.class).

When running unit tests in IntelliJ, you’ll need to make a configuration change. Go to Run->Edit Configurations. Change Use classpath of module to beam-runners-direct-java. This will make the unit test run with the direct runner for the test. The image below shows what it should look like:

screen-shot-2016-12-29-at-9-59-32-am

To run a specific unit test from the command line run:

mvn -Dtest=org.apache.beam.sdk.transforms.RegexTest \
-DfailIfNoTests=false \
-pl runners/direct-java -am integration-test

Using an IDE is by far the easiest way to run individual unit tests.

Thanks to Dan Halperin for his help.