Question

Je veux ajouter quelques configs au classpath (généré par Maven-jar-plugin), mais je ne veux pas les dans un pot, mais dans un dossier externe. De cette façon, je vais pouvoir modifier configs sans reconditionner. J'ai trouvé une solution Comment ajouter une entrée classpath lors de l'exécution de l'application avec le plugin exec mais est-il une solution moins compliquée?

Ou peut-être que je me trompe et il est un mauvais modèle - stockage configs dans le classpath, mais en dehors d'un pot? Peut-être qu'il est préférable d'app magasin configs dans le répertoire personnel de l'utilisateur et les ajouter à l'application lors de l'exécution?

Par exemple, je veux permettre à l'utilisateur final de modifier log4j.properties et traductions.

Cordialement,

Était-ce utile?

La solution

Je suggère d'avoir un emplacement par défaut qu'il recherche les applications configs (par exemple l'utilisateur de répertoire, comme vous le suggérez), mais permet à l'utilisateur de fournir un agrument / propriété système pour remplacer cet emplacement. En supposant que de regarder le chemin de classe ne sont pas, à mon avis, la meilleure solution, car le concept d'un classpath est une chose assez étrangère à la plupart des utilisateurs, et peut même être difficile de déterminer pour certains programmeurs.

Autres conseils

Je pense que Melv ont raison - mieux configs magasin dans le répertoire familial et d'offrir la capacité de changer, mais si quelqu'un doit ajouter quelque chose à classpath - vous pouvez simplement ajouter le code suivant dans <configuration><archive>

.
<manifestEntries>
    <Class-Path>config/</Class-Path>
    <mode>development</mode>
    <url>${pom.url}</url>
</manifestEntries>

Si vous déclarez <addClasspath>true</addClasspath>, alors classpaths de dépendance sera également ajouté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top