Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hal91190/maven-exemple

Un petit exemple en Java intégrant Maven et JUnit
https://github.com/hal91190/maven-exemple

example-project hamcrest java junit maven

Last synced: 2 months ago
JSON representation

Un petit exemple en Java intégrant Maven et JUnit

Awesome Lists containing this project

README

        

# Exemple de projet Maven/Java

## Étape 1 : initialiser le projet
### Créer le projet à partir d'un archétype
L'archétype `org.apache.maven.archetypes:maven-archetype-quickstart` permet de créer un squelette de projet Maven/Java.

```bash
mvn archetype:generate \
-DinteractiveMode=false \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DgroupId=fr.uvsq.poo \
-DartifactId=maven-exemple \
-Dpackage=fr.uvsq.poo.compte
```

### Initialiser le dépôt git
```bash
git init
git add .
git commit -m"Initialise le projet Maven"
```
Après ces commandes, le dépôt comporte un _commit_ sur la branche _master_.

### Faire le lien avec le dépôt distant sur la forge (_github_, _bitbucket_, ...)
Tout d'abord, il est nécessaire de créer le dépôt distant sur la forge.
Ensuite, il suffit de le lier avec le dépôt local.

```bash
git remote add origin [email protected]:hal91190/maven-exemple.git
git push -u origin master
```

### Vérifier la construction du projet avec Maven
On génère un `jar` du projet.

```bash
mvn package
```

Cette commande crée un répertoire `target` contenant les résultats de la construction du projet.
Ce répertoire ne doit pas être ajouté au dépôt git.
On ajoute donc un fichier `.gitignore` à partir du modèle se trouvant sur [github](https://raw.githubusercontent.com/github/gitignore/master/Maven.gitignore).

### Importer le projet dans l'IDE
La plupart des IDEs permettent d'importer un projet Maven.
Il est préférable de ne pas ajouter les fichiers spécifiques à l'IDE dans le dépôt git.
On modifie donc le `.gitignore` en conséquence.

## Étape 2 : configurer le projet
### Fixer la version 11 de Java pour les sources et la cible
Il suffit pour cela d'ajouter deux propriétés dans le `pom.xml`.

```xml

11
11

```

### Changer la version de JUnit pour la version 4.13.1
On modifie la dépendance dans le `pom.xml`.

```xml

junit
junit
4.13.1
test

```

### Rendre le `jar` exécutable
Pour cela, il indiquer à Maven d'ajouter un fichier `Manifest` dans le `jar` en précisant l'attribut `Main-class`.

```xml



org.apache.maven.plugins
maven-jar-plugin
3.0.2



fr.uvsq.poo.compte.App




```

À partir de là, il est possible d'exécuter l'application avec `java -jar target/maven-exemple-1.0-SNAPSHOT.jar`.

## Étape 3 : améliorer le projet (optionnel)
### Créer un `jar` intégrant les dépendances
Le plugin [`assembly`](https://maven.apache.org/plugins/maven-assembly-plugin/) permet de générer une archive contenant l'ensemble des dépendances d'un projet.

```xml



maven-assembly-plugin
3.1.0


jar-with-dependencies



${main-class}





make-assembly
package

single




```

### Créer un `jar` des sources du projet
Le plugin [`source`](https://maven.apache.org/plugins/maven-source-plugin/) permet de générer une archive des sources du projet.

```xml



maven-source-plugin
3.0.1


attach-sources
package

jar-no-fork




```

### Créer un `jar` avec la javadoc
Le plugin [`javadoc`](https://maven.apache.org/plugins/maven-javadoc-plugin/) permet de générer une archive de la javadoc.

```xml



maven-javadoc-plugin
3.0.0-M1


attach-javadocs
package

jar




```

### Intégrer l'extension Hamcrest pour JUnit
Cette [extension]() apporte un syntaxe plus lisible pour les tests JUnit.

```xml

org.hamcrest
hamcrest-all
1.3
test

```

### Étape 4 : implémenter la classe `Account` et les tests unitaires