Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/hal91190/maven-exemple
- Owner: hal91190
- Created: 2017-10-25T13:06:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-15T13:08:52.000Z (11 months ago)
- Last Synced: 2024-03-16T13:52:06.181Z (11 months ago)
- Topics: example-project, hamcrest, java, junit, maven
- Language: Java
- Size: 147 KB
- Stars: 1
- Watchers: 0
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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