# Lab 00 : Development environment and labs logistics

## 1. Maven Project Structure

```
project-root/
│ pom.xml <-- metadata, dependencies, plugins
│
└── src/
    ├── main/
    │   └── java/ <-- app source code 
    │
    └── test/
        └── java/ <-- unit and integration tests
```

<br>

## 2. Maven Build Lifecycle
Maven builds go through **phases**.
Using:

```bash
mvn package
```

Triggers:

- **validate** – check project structure  
- **compile** – compile source code  
- **test** – run tests (build fails if tests fail)  
- **package** – package compiled code (creates `.jar`)  



<br>

## 3. Best Practices
- Use `.gitignore` at root level.  
- Use UTF-8 encoding (helps portability).  
- Keep  `pom.xml` clean and slim – avoid outdated archetypes.  



