Milestone 1 Review: Toolchain and Environment Setup

Consolidate Your Learning

A review of the core concepts of setting up and using a professional Java development workflow.
Author

Chuck Nelson

Published

October 28, 2025

Purpose

This document provides a comprehensive review of the foundational tools and professional workflows you learned in Milestone 1. Through a series of active learning exercises, you will solidify your understanding of Git, Maven, JUnit, Javadoc, and the VS Code environment.

What You’ll Accomplish

By the end of this review session, you will have:

  • Reinforced your understanding of the Git and Maven command-line workflows.
  • Reviewed the purpose of key files like pom.xml and .gitignore.
  • Connected the concepts of compiling, testing, and documenting a Java application.

Active Learning and Engagement

NoteSubmitting Your Work

For all the exercises and questions in this review document, you are to record your work on a new page in your Microsoft Teams Student Notebook. This will be the official record of your review process.

Exercise 1: Command Matching Challenge

Match the description on the left with the correct command on the right. Write the correct pairs in your notebook.

Description Command
1. Compiles your Java source code into .class files. A. git push
2. Creates a snapshot of your staged changes. B. mvn test
3. Downloads changes from a remote repository to your local machine. C. mvn compile
4. Runs all the JUnit tests in your project. D. git clone
5. Uploads your local commits to the remote repository on GitHub. E. git commit -m "..."
6. Creates a local copy of a remote repository. F. git pull
7. Generates the Javadoc HTML website. G. mvn javadoc:javadoc

Exercise 2: Fix the pom.xml

Your teammate is trying to build the project, but they are getting an error that says package org.junit.jupiter.api does not exist. They show you their pom.xml file. Identify the problem and write the corrected XML snippet in your notebook.

Problematic pom.xml Snippet:

<project ...>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <!-- The dependencies section is missing! -->

</project>

Your Task: Write the complete <dependencies> block that is missing from the pom.xml file, which is needed to include the JUnit 5 library for testing.

Exercise 3: Peer Instruction

This exercise is for discussion. Find a partner or a small group and choose one of the topics below. Each person should take a turn explaining their topic to the others.

Explain the difference between git add, git commit, and git push.

  • Where do changes go after you add them?
  • Why is the commit message important?

Explain the difference between mvn compile, mvn test, and mvn package.

  • What does compile produce?
  • What does package produce?
  • Why is it useful that test runs automatically before package?

Explain the purpose of the pom.xml file and the .gitignore file.

  • What are two key things you configure in pom.xml?
  • Why don’t we want to commit the target directory to Git?

Review Questions

Answer the following questions in your Microsoft Teams Student Notebook.

  1. In software development, what is “version control” and why is it important?

  2. What is the main purpose of a “reproducible build”?

  3. What is the first Git command you must run to get a project from GitHub onto your computer?

  4. In JUnit, what annotation do you place above a method to mark it as a test case?

  5. What is the purpose of the main method in a Java application?

Reflect and Review

ImportantMilestone Reflection

Reflect on your journey through Milestone 1. In your Microsoft Teams Student Notebook, answer the following:

  • Connect: How did setting up the full toolchain in this milestone make you feel more like a professional programmer?
  • Challenge: What was the most challenging part of this milestone for you (e.g., using the command line, setting up Git authentication, understanding the pom.xml), and what step did you take to better understand it?
  • Confidence: Describe one tool (Git, Maven, VS Code) that you feel more confident using now than you did before.
Back to top