Milestone 1 Review: Toolchain and Environment Setup
Consolidate Your Learning
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.xmland.gitignore. - Connected the concepts of compiling, testing, and documenting a Java application.
Active Learning and Engagement
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
addthem? - Why is the commit message important?
Explain the difference between mvn compile, mvn test, and mvn package.
- What does
compileproduce? - What does
packageproduce? - Why is it useful that
testruns automatically beforepackage?
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
targetdirectory to Git?
Review Questions
Answer the following questions in your Microsoft Teams Student Notebook.
In software development, what is “version control” and why is it important?
What is the main purpose of a “reproducible build”?
What is the first Git command you must run to get a project from GitHub onto your computer?
In JUnit, what annotation do you place above a method to mark it as a test case?
What is the purpose of the
mainmethod in a Java application?
Reflect and Review
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.