Quelle est la structure de répertoire de projet standard d'une application autonome Java SE (basée sur la ligne de commande)?
Le dossier src
contiendra tous mes fichiers .Java
dans des paquets correctement organisés. En dehors de cela, j'ai le dossier bin
qui contiendra mes fichiers .class
.
J'ai des fichiers de propriétés et des fichiers de configuration XML dans mon projet. Dans quel répertoire dois-je les placer? Devrais-je créer un paquet nommé com.myproject.config
et y placer tous les fichiers de configuration .xml
?
Je veux que les pots dépendants soient emballés avec mon paquet final. Devrais-je donc créer un dossier (par le nom lib
) pour contenir tous ces fichiers .jar
?
Je recommanderais de s'en tenir à default Maven layout (et d'utiliser maven comme outil de compilation)
Classes/ressources productives:
src/main/Java
src/main/resources
Données de test et classes:
src/test/Java
src/test/resources
Maven peut également prendre soin de bien emballer votre application avec tous les bocaux nécessaires (recherchez le plugin maven Assembly)
Une structure couramment utilisée est la suivante:
Autant que je sache, il n’existe pas de structure de projet standard pour Java en soi. Cependant, divers outils et IDE (tels que Eclipse) ont une structure standard.
Maven , un outil de construction pour Java, possède par contre une structure de projet très clairement définie (par défaut). Là, tous les fichiers source Java sont placés dans le dossier src/main/Java
et tous les fichiers de ressources (comme vos fichiers de configuration) sont placés dans src/main/resources
.
Voici une très brève introduction à Maven, si vous ne le connaissez pas encore: Maven in 5 Minutes
En ce qui concerne votre question sur l’emballage avec dépendances, voici un extrait de l’un de mes fichiers POM Maven qui utilise le plugin Assembly pour créer un fichier JAR avec toutes les dépendances incluses:
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>...</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
src/com.nom_entreprise.nom_projet. Main.Java (la classe principale)
src/com.nom_entreprise.nom_projet.model. (ici toutes les classes de modèles)
src/com.nom_entreprise.nom_projet.view. (ici toutes les classes de vues, JFrame, Jdialog, etc.)
src/com.nom_entreprise.nom_projet.view.resources. (ici tous les fichiers et images utilisés dans les vues * note )
src/com.nom_entreprise.nom_projet.controller. (ici toutes les classes de contrôleurs)
lib/(ici toutes les bibliothèques externes - n'oubliez pas d'ajouter dans le chemin de construction)
* note si vous avez besoin d'un fichier de ressources (xml, fichier de configuration, etc.), créez un package .resources. à l'endroit spécifique où vous avez besoin (modèle, contrôleur, vue)