Come creare e pubblicare un'utile libreria Java

9

Recentemente ho lavorato su una classe Java che genera permutazioni per elenco di oggetti. In ogni caso, mi piacerebbe avere questa libreria offerta al pubblico, quindi ho diverse domande:

  • La maggior parte delle librerie che vedo hanno questa complicata denominazione del pacchetto, che include in particolare com / org . Esiste una convenzione per questi o è sufficiente un pacchetto permutations ?
  • Esiste un formato specifico per pubblicare questi? Devo includere WAR separati per il codice sorgente / javadoc?
  • Ho i file su un repository GitHub. Immagino di poter servire i file lì, ma come faccio a convincere la gente a trovare il mio repository?
posta Amir Rachum 23.09.2011 - 20:07
fonte

3 risposte

9
  • Un modo standard per pubblicare (a parte il codice sorgente su GitHub) è di avere versioni JAR / WAR formali per Maven Central che molti strumenti di creazione (Maven, Gradle, Ant / Ivy) usano per portare nelle librerie una dipendenza. Per fare questo, il modo migliore è passare attraverso il processo Nexus .

  • È anche considerato amichevole ospitare gli stessi JAR / WAR su un repository di hosting di codice come Sourceforge o GitHub.

  • In termini di dominio. Vi consiglio di acquistare firstnamelastname.net/org/com e usarlo come schema di denominazione (ad esempio per me è net.martijnverburg.foobar). Altrimenti, usando il dominio github come suggerito da @Daniel, Moura ne ha una buona.

  • Per pubblicizzarlo, blog su di esso, twitter su di esso, inviarlo a notizie di hacker, reddit, digg, slashdot, dzone, TSS, javaworld ecc.

HTH!

    
risposta data 23.09.2011 - 21:04
fonte
3

Se hai spinto il tuo codice su GitHub, condividere la tua libreria (jar) è facile con JitPack .

I tuoi utenti avranno solo bisogno di aggiungere il repository al loro build.gradle:

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

e quindi il tuo repository GitHub come dipendenza:

dependencies {
    // ...
    compile 'com.github.YourUsername:Repo:Release'
}

JitPack funge da repository di maven simile a Maven Central. La cosa bella è che non devi caricare la tua libreria. Dietro le quinte JitPack controllerà il codice da GitHub e lo compila. Quando pubblichi una nuova versione su GitHub, diventa disponibile per altri utenti.

C'è anche una guida su come preparare un progetto ed esempi per aggiungere un vaso di fonti.

Non è necessario avere un nome di dominio così il tuo groupId diventa com.github.Username. Puoi anche usarlo per la denominazione dei pacchetti.

    
risposta data 13.02.2016 - 10:31
fonte
2

Most libraries I see have this complicated package naming, specifically including com/org. Is there a convention for these or is a permutations package enough?

Ci sono consigli da Oracle su come denominare i pacchetti . La ragione di questa convenzione di denominazione è di ridurre al minimo i duplicati. Se tutti usano semplicemente nomi brevi e semplici, diventa più probabile che un progetto includa due pacchetti permutation . Se il nome di una classe fosse lo stesso, ci sarebbero conflitti di denominazione. Le cose possono creare confusione per lo sviluppatore, se non ci sono conflitti di denominazione che impediscono la risoluzione delle classi.

Se hai un nome di dominio, ti suggerirei di utilizzarlo. Se stai ospitando su un servizio come GitHub o Sourceforge, anche il percorso per il tuo progetto sarà sufficiente. Indipendentemente da ciò, sii esplicito per prevenire conflitti o confusione.

Is there a specific format to publish these? Should I include separate WARs for source code / javadoc?

Non esiste un formato specifico. Per lo meno, l'origine e uno script di compilazione di convenzioni (Make, Ant, Maven). È bello avere JAR o WAR precompilati, ma non essenziali. Alcuni progetti includono Javadoc nella libreria, altri potrebbero produrre due JAR (uno con Javadoc e uno senza). Potrebbe anche essere una buona idea pubblicare semplicemente il tuo Javadoc su Internet se la soluzione di hosting del tuo progetto lo consente.

I have the files on a GitHub repository. I guess I can serve the files there, but how do I get people to find my repo?

Pubblicizzalo. Inizia mostrandolo ad alcuni amici. Blog a riguardo. Condividi un collegamento su Internet. Trova qualcuno che ha un problema che possono risolvere usando questa libreria (ma assicurati di rivelare che hai creato la libreria).

    
risposta data 23.09.2011 - 21:41
fonte

Leggi altre domande sui tag