To build a Java application with Maven, put its source code and dependencies in the conventional project structure, describe the project in a root pom.xml, then run a lifecycle phase such as mvn test or mvn package. Maven reads the POM and uses plugins to compile, test, and package the project. This guide walks through creating a project, setting its Java release, choosing commands, and locating the output.
What you need before creating a Maven project
Maven requires Java. Check that both tools are available in your terminal:
mvn --version
The output reports the Maven and Java environment information Maven detects. If the command is unavailable or reports an unexpected Java installation, resolve that setup issue before building. Maven may also need network access to download dependencies and plugins, particularly on the first build. Follow the current Maven Users Centre for downloads and version-specific guidance.
How to create a first Maven project
You can generate a starter project from an archetype, which is a project template, or follow Apache’s Getting Started Guide. The Maven quick-start archetype creates a small project with a POM, application source, and a test source. Once created, recognize these key locations:
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
| Path | Purpose |
|---|---|
pom.xml |
Project Object Model (POM): project metadata and build configuration at the project root. |
src/main/java |
Production Java source code. |
src/test/java |
Test source code. |
target |
Generated build output, including compiled files and packaged artifacts. |
Maven’s POM guide explains the project model and standard layout. Keeping production and test code in their respective directories lets Maven apply the appropriate compile and test steps.
What belongs in pom.xml
The POM is an XML file Maven reads from the project directory when running a build. It describes the project and can declare dependencies, build plugins, and plugin configuration. Dependencies are libraries the application or tests need; plugins provide the actions Maven uses to compile, test, and package.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Set the Java release deliberately rather than assuming Maven’s runtime JDK determines the application’s compatibility target. For example, a project might specify the release property like this:
<properties>
<maven.compiler.release>17</maven.compiler.release>
</properties>
Here, 17 is only an example; choose the Java release your project is intended to support. The current Maven Compiler Plugin documentation encourages the release option. Its documented source and target defaults are both 8 independently of the JDK running Maven, so an implicit default may not match your intended compatibility.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
For reproducible builds, give build plugins explicit versions. Apache’s plugin configuration guide recommends managing plugin versions in pluginManagement. Exact versions should be selected against the current plugin documentation and your project’s requirements; examples can become outdated.
Which Maven command should you run?
Maven has three built-in lifecycles: default for building and deployment, clean for removing generated files, and site for project-site documentation. A lifecycle phase is an ordered step. Running a phase also runs the earlier phases in that same lifecycle, so package includes the work leading up to packaging rather than packaging alone. The exact work can depend on the project packaging type and plugin bindings.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
| Command | Use it when | Outcome |
|---|---|---|
mvn clean |
You want to remove generated build files before a fresh build. | Runs the clean lifecycle; generated output such as target is cleared. |
mvn test |
You want to compile and run unit tests. | Runs default-lifecycle phases through testing, including preceding compilation steps. |
mvn package |
You want a distributable artifact after the preceding build phases. | Runs through packaging; a JAR project normally produces a JAR under target. |
mvn verify |
You want the package checked through the verification phase. | Runs phases through verification; checks depend on configured plugins and bindings. |
mvn install |
You want the built artifact available to other local Maven projects. | Runs through installation into your local Maven repository. |
mvn deploy |
You want to publish an artifact to a remote repository. | Runs through deployment when remote repository configuration and credentials are in place. |
A phase names a point in the lifecycle; a goal is a concrete action supplied by a plugin. For example, the Compiler Plugin binds its compile goal to the compile phase and its testCompile goal to test compilation. The Maven lifecycle guide describes phase ordering and bindings.
How to build and inspect the application
- Confirm the environment. Run
mvn --versionand check that Maven detects the Java installation you intend to use. - Review the project layout. Confirm that the root contains
pom.xml, application code is undersrc/main/java, and tests are undersrc/test/java. - Configure the POM. Declare required dependencies, select the Java release, and configure build plugins with explicit versions.
- Choose the phase that matches the goal. Run
mvn testfor the test cycle ormvn packageto create the package after preceding phases. - Inspect the result. Look under
targetfor compiled output and the packaged artifact. The artifact type depends on the project’s packaging configuration; a JAR project has a default JAR package binding.
Build success depends on more than the command: Java and Maven installation, network and repository settings, tests, project packaging, and plugin configuration can all affect the result. If a first run takes longer, Maven may be retrieving dependencies and plugins for the local repository.
Recommended Free Tools
Quick Recap
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Keeping the build maintainable
- Use the standard source and test directories so Maven’s conventional lifecycle can locate them.
- Specify the intended Java release explicitly, and consult the current Compiler Plugin documentation when changing plugin configuration.
- Pin plugin versions and manage them centrally where practical to make builds more predictable across machines.
- Use
cleanwhen you need to remove previous generated output; use the phase that corresponds to the result you actually need. - Check the current Maven documentation and migration guidance when working across major Maven versions; examples are tied to the versions for which they were written.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

