Comment créer/utiliser une bibliothèque de classe avec Netbeans sur Maven?

cela semble comme une question stupide, mais je suis en quelque sorte dépendant de Netbeans 7.1 wizards. Il ne semble pas y avoir d'option pour faire ça.

mon application web est construite avec Maven et je veux décomposer certains de ses paquets en une bibliothèque de classe construite et maintenue de manière indépendante (en particulier, la partie JPA, mais cela ne devrait pas avoir d'importance.) Puis je veux supprimer ces paquets de l'application web d'origine et puis créer une dépendance à l'artefact que je créer.

alors comment commencer? L'Assistant Netbeans New-Project ne semble pas avoir d'option pour "Java Class Library" comme il le fait pour les projets construits par ANT. Le choix le plus proche que je peux voir est "Java Application."C'est que ce que j'utilise et simplement ignorer la classe principale ou est-il un autre chemin, je ne vois pas?

je suis habituellement assez bon à ramasser ce genre de choses, mais mes recherches sur le web ne donnent pas beaucoup. Merci beaucoup pour toute aide.

17
demandé sur bmargulies 2012-02-26 00:13:22

4 réponses

vous pouvez utiliser le wizard pour "Maven" - > "application Java (une simple application Java SE utilisant Maven)", en ce qui concerne maven il n'y a pas de différence entre un libary et une application. Je pense que netbeans va créer un exemple App.java que vous pouvez simplement le supprimer.

pour votre usecase il serait logique de créer aussi un projet parent pour la bibliothèque et l'application web. Construire le parent permettrait alors aussi de construire à la fois la bibliothèque et l'application web. Il vous permet également pour utiliser "construire avec des dépendances" sur l'application web et avoir la bibliothèque reconstruite en premier.

pour créer un projet parent, vous pouvez utiliser l'entrée "projet POM". La structure du répertoire ressemble idéalement à ceci:

- pom.xml (for parent project)
- library (folder)
    - pom.xml (for library module)
- webapp  (folder)
    - pom.xml (for webapp module)

le projet parent devrait alors contenir module éléments contenant le chemin d'accès relatif de vos autres projets:

<modules>
    <module>library</module>
    <module>webapp</module>
</modules>

La bibliothèque et web de référence de la demande de la mère comme cela, le groupId et la version par défaut à l' même en tant que parent:

<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>myGroupId</groupId>
    <artifactId>parentArtifactId</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
<artifactId>libraryArtifactId</artifactId>
16
répondu Jörn Horstmann 2012-07-11 01:36:04

vous pouvez commencer par Maven > projet POM. Ce qui est approprié pour les bibliothèques de classe.

vous pouvez aussi rendre votre projet Maven "modulaire". Un bon tutoriel peut être trouvéhttp://sonatype.com/books/mvnex-book/reference/index.html aux chapitres 8 et 9.

3
répondu mergenchik 2012-02-26 14:18:22

j'ai trouvé un moyen plus rapide de mettre à jour les versions de vos plugins dans pom.xml à l'aide de NetBeans.

  1. Localisez la balise plugins -> plugin -> version dans votre pom.xml
  2. double-cliquez sur le numéro de version de sorte qu'il devient en surbrillance
  3. appuyez sur Ctrl+SPACE pour basculer autocompletion
  4. le menu contextuel vous permet de sélectionner les versions disponibles. Screenshot
2
répondu Simon 2016-12-10 10:07:04

ce qui suit fonctionne parfaitement pour les bibliothèques de classe dans NetBeans8.1.

vous devrez mettre à jour les versions majeures du plugin dans le fichier Maven (et vous voulez supprimer JUnit si vous ne l'utilisez pas, voir en bas).

ne pas utiliser New Project -> Maven -> Java Application, il ne s'intègre pas avec le système de menu dépendance Maven dans NetBeans-8.1.

Suivez ces étapes:

  • Etape 1: Créer un New Project -> Maven -> Project from Archtype puis dans l'archétype filtre de recherche choisissez maven-archetype-quickstart.

  • Etape 2: Cliquez Sur puis saisissez le nom de votre projet/module (MyLib ou MyAPI) puis Terminer.

  • Etape 3: immédiatement (avant d'oublier) sous Project Settings > Sources changer le format Source/binaire de 1.5 à 1.8 (ou autre).

  • Etape 4: immédiatement (avant d'oublier) sous Project Settings > Licence Headers choisir une licence.

  • Étape 5: Créer une nouvelle (ou copie à partir de l'ancien projet) classe Java ou les fichiers d'interface, etc. sous paquets Source dans le navigateur du projet.

  • Étape 6: (optionnel) supprimer le public class App si vous ne voulez pas avoir une classe d'exécution/test de module autonome simple.

  • Step7: (fortement recommandé): mettre à jour les plugins Maven majeurs aux dernières versions en éditant les numéros de version dans le pom.xml ! Le meilleur endroit pour trouver les dernières versions est en inspectant les dossiers sous le dépôt principal des plugins:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/

dans le cadre de tout autre projet basé sur NetBeans Maven, le nouveau projet de bibliothèque ou D'API "en amont" sera proposé via Dependendies -> Add Dependency .. (Open Projects subtab). Il sera également disponible via le système de gestion du dépôt lorsque vous rechercherez Maven library via Add as Dependency.

si vous voulez ajouter des bibliothèques communes/partagées, il vous suffit de les ajouter via votre module MyLib ou MyAPI en utilisant le Maven Les dépendances se propagent à n'importe quel module "en aval" qui ajoute votre module MyLib ou MyAPI comme dépendance.

optionnel: aussi, votre pom.xml va par défaut inclure JUnit:

   <dependencies>

     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>

il suffit de l'effacer si vous ne le voulez pas.

1
répondu Webel IT Australia - upvoter 2016-12-05 01:46:17