estrai il componente del progetto Java maven come progetto separato


Sono nuovo di Maven e ho deciso di iniziare con esso su un progetto che ho iniziato a sviluppare di recente. Il progetto è una libreria Java che analizza le query di conversione di unità scritte in linguaggio naturale ed esegue la conversione di unità che è stata interpretata dalla query in linguaggio naturale.

Per questo progetto avevo bisogno di una libreria di inflessione per Java (pluralize/singularize words), e dopo aver riflettuto su alcune opzioni ho deciso di svilupparne una mia. Si scopre che ci sono stati alcuni interessi da alcune persone usano questa funzionalità di inflessione solo .

Quindi la domanda è, quale sarebbe l'approccio migliore per dividere le classi che forniscono funzionalità di inflessione (che si trovano in un pacchetto separato all'interno del mio progetto di conversione di unità) in un nuovo progetto Maven separato, pubblicare questa libreria di inflessione in una sorta di repository Maven pubblico e specificarlo come dipendenza della mia libreria di conversione di unità . In questo modo, chiunque altro voglia usare l'inflessione la libreria sarebbe in grado di farlo mettendola come dipendenza dei propri progetti.

Nota che la mia domanda include la parte di "pubblicare la propria libreria in un repository Maven in modo che possa essere una dipendenza di altri progetti". Sono totalmente nuovo per Maven, quindi non ho davvero afferrato il tutto. Mi limito semplicemente a impostare le dipendenze del mio progetto, costruire, eseguire, ecc.

Author: Ernesto, 2012-05-11

1 answers

Per l'open source:

  • Rende disponibile il codice sorgente, ad es. sourceforge.net
  • Assicurati che il tuo POM erediti (direttamente o indirettamente) da:

:

  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>

Per sorgente chiusa:

Raccomandazioni generali:

  • Per il nome del pacchetto iniziare con il nome di dominio inverso, ad es.
    • org.myproject.mycomponent (se si dispone di un dominio personalizzato per questo progetto)
    • com.la mia compagnia.myproject.mycomponet (se la tua azienda possiede il dominio mycompany.com)
    • netto.sourceforge.myproject.mycomponent (se si ospita il codice sorgente a myproject.sourceforge.net e non hanno un dominio personalizzato)
  • ID gruppo:
    • Usa l'inizio del nome del pacchetto come com.la mia compagnia.myproject
    • Di solito usa lo stesso groupId per tutti i progetti Maven all'interno di un singolo repository VCS
  • artifactId: assicurati che sia abbastanza univoco in quanto sarà l'inizio del nome del file jar, ad esempio mycompany-myproject-mycomponent
  • Imposta un server CI come Jenkins
    • Assicurarsi che il server CI sia eseguito da un utente di sistema dedicato
    • Aggiungere le credenziali necessarie alle impostazioni.file xml dell'utente CI
    • Configurare un lavoro per "clean install"
    • Configurare un lavoro per il rilascio della libreria (Jenkins ha un plugin speciale per supportare le versioni Maven)
  • Considera di trasformare il tuo jar in un pacchetto OSGi
 1
Author: Puce, 2012-05-11 19:21:44