C'est le troisième de la série Maven.
Plus tôt, j'ai écrit Comment créer un fichier jar exécutable dans Maven.
En utilisant cette méthode, vous pouvez exécuter le programme java archivé dans le fichier jar avec la commande java -jar <nom du fichier jar à exécuter>
.
Cependant, le fichier jar exécutable construit par cette méthode inclut toutes les dépendances utilisées dans le programme dans le fichier jar, donc si vous essayez de réécrire le contenu du fichier de configuration, etc., après avoir modifié le fichier source Vous devez le reconstruire.
Ensuite, par exemple, un fichier de propriétés qui affiche des valeurs de réglage que vous ne voulez pas écrire dans le programme, etc. perdra environ la moitié de la signification que vous avez donnée.
Si possible, ne regroupez pas le fichier de configuration, etc. avec le fichier jar et placez le fichier de configuration Correction directe> Redémarrer le programme Je veux le finir.
Donc cette fois, je vais vous montrer comment construire un fichier jar avec Maven qui n'inclut pas les fichiers jars et de configuration dépendants.
Dans la méthode de construction introduite cette fois, le point d'entrée du fichier jar n'est pas spécifié, donc le programme java ne peut pas être exécuté avec la commande ci-dessus.
Je ne sais pas comment le faire, mais si quelqu'un qui a lu cet article sait comment le faire, je vous serais reconnaissant si vous pouviez m'apprendre comment le faire.
Cela faisait longtemps, mais c'était un résumé de la façon dont je suis arrivé à écrire cet article et de ce que je m'apprête à écrire.
De là, je décrirai la méthode spécifique.
Tout d'abord, créez un projet à utiliser pour les tests.
Créez le projet Maven comme d'habitude. Si vous ne savez pas comment créer un projet Maven, veuillez consulter ici.
Pour ce projet, nous avons besoin de dépendances et de ressources à copier, nous les ajouterons donc.
Ajoutez le fichier jar dépendant pour voir la copie de la dépendance. Les fichiers jar dont dépend le projet Maven sont répertoriés dans pom.xml. Ce faisant, Maven téléchargera automatiquement les fichiers jar dépendants à partir du référentiel central.
■ Contenu de pom.xml
<dependencies>
<dependency>
<! - Cette fois, ajoutez un enregistreur en tant que dépendance->
Ajoutez un fichier de ressources pour vérifier la copie de la ressource. Cette fois, ajoutez le fichier de paramètres de journalisation (logback) (logback.xml) ajouté jusqu'à présent en tant que fichier de ressources. Ajoutez le fichier de configuration dans le dossier "src / main / resources".
■ Arborescence du projet après l'ajout de ressources
Dans le projet hello-world, Hello World a été généré à l'aide de la sortie standard, mais modifions cette partie en un paramètre utilisant un enregistreur.
package hello.main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
Hello World chez Maven */ public class HelloWorld { / ** Enregistreur * / private static Logger logger = LoggerFactory.getLogger(HelloWorld.class);
/**
traitement principal
Afficher Hello World en sortie standard.
Argument de commande @param args */ public static void main(String[] args) { // Changer la sortie standard en enregistreur logger.info("Hello Maven World!"); } }
Le fichier de paramètres qui contrôle le mouvement de l'enregistreur est "logback.xml". logback lui-même fonctionne avec les paramètres par défaut sans lui, mais cette fois, il y a aussi un test de copie, alors écrivons exactement le fichier de paramètres. Il sert également de rappel de la façon d'écrire logback.xml, que j'oublie toujours, et décrit les paramètres à sortir sur la console et les paramètres à sortir dans un fichier.
■ Contenu de logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/log%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd'T'HH:mm:ss'Z'} - %m%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
Tout d'abord, configurez une copie du fichier jar dépendant, y compris les bibliothèques utilisées dans votre programme.
2.1. maven-dependency-plugin Pour copier les fichiers dépendants dans un répertoire différent de celui des fichiers jar, utilisez un plugin appelé maven-dependency-plugin. Ce plug-in vous permet de copier des fichiers jar dépendants dans un répertoire spécifié au moment de la construction.
Pour de tels paramètres, ajoutez les paramètres de construction du fichier jar à pom.xml comme dans l'exemple. Le but ici est de définir la copie en excluant les matériaux utilisés dans le test, ce qui est inhérent à Maven. Pour être précis, vous ne pouvez pas simplement définir le plug-in de dépendance, limitez simplement la portée des fichiers dépendants aux tests.
■ Contenu de pom.xml
<! - Limiter la portée au test->
<! - Plugin pour copier les fichiers JAR dépendants->
Le terme ressource a de nombreuses significations, mais la ressource ici fait référence au fichier qui décrit les paramètres utilisés dans le programme java.
Plus précisément, il s'agit d'un fichier placé dans le répertoire "src / main / resources /" du projet Maven. Dans mon environnement préféré, je mets souvent des fichiers de paramètres de bibliothèque de journalisation, etc., comme je le fais dans la construction de projets.
En passant, je préfère utiliser l'environnement "logback + slf4j".
3.1. maven-resources-plugin Pour copier des ressources telles que des fichiers de configuration, utilisez un plugin appelé maven-resources-plugin.
Maintenant, ajoutons également les paramètres du plug-in à pom.xml. Le but ici est d'ajouter des paramètres sans ressources au fichier jar au moment de la construction. Si vous n'effectuez pas ce réglage, vous finirez par créer des ressources dans le fichier jar.
■ Contenu de pom.xml
<build>
<! - Décrit ici les paramètres d'exclusion des ressources au moment de la construction.
Jusqu'à présent, nous avons présenté comment créer des fichiers en excluant les fichiers dépendants de jar. J'ai surfé sur Internet pendant un certain temps jusqu'à ce que j'arrive à ce point, mais j'ai eu du mal parce qu'il n'y avait pas de site Web japonais que je pourrais utiliser tel quel. L'une des raisons est que je n'ai pas une compréhension profonde de Maven en premier lieu, mais j'espère qu'il y a des gens dans la même situation qui peuvent les aider.
De plus, si quelqu'un sait comment le faire plus intelligemment, j'apprécierais que vous puissiez le signaler et m'apprendre cela.
J'ai beaucoup appris sur Maven ces jours-ci, donc je pense que c'est la dernière série Maven depuis un moment. J'ai écrit trois articles jusqu'à présent, mais Maven est un outil de construction, mais c'est un outil de construction. Il y a plusieurs façons de l'utiliser, et c'est profond, donc je peux l'introduire quand j'étudie différemment quelque part.
Pour référence, je résumerai les articles que j'ai écrits jusqu'à présent sous forme de liens. Si vous avez lu cet article, veuillez utiliser ce qui suit comme référence.
■ [Pour les super débutants] Super introduction à Maven http://qiita.com/ryota0001/items/e019ec4daaaf54684c53
■ Comment créer un fichier jar exécutable avec Maven http://qiita.com/ryota0001/items/e019ec4daaaf54684c53
Recommended Posts