2010-10-26 3 views
12

Penso che la mia domanda sia facile. Tuttavia è sorprendente che non ho trovato alcuna soluzione facile.Generazione jar sorgente e Javadoc

Sto sviluppando un progetto di libreria Java open source su Netbeans e come molti altri voglio rilasciarlo come binary.jar, source.jar e javadoc.jar.

C'è un modo per generarli automaticamente su Netbeans? So che il maven può farlo. Ma la curva di apprendimento sembra troppo lunga.

C'è una domanda simile, ma l'unica risposta che non ha funzionato: Automatically generating source and doc jars in Netbeans

+0

a) Penso che la curva di apprendimento della soluzione Maven sia molto inferiore a quella di una soluzione manuale b) si prega di definire "non ha funzionato" –

risposta

11

Ecco la soluzione che ho trovato alla fine. Usa Ant e genera javadoc e jar sorgente. Quindi archivia binario jar, javadoc, source.jar, licenza e file readme in un file zip pronto per il rilascio.

<target name="-pre-init"> 
    <property file="version.properties"/> 
    <property name="dist.jar" value="dist/${ant.project.name}-${project.version}.jar"/> 
</target> 

<target description="bundle sources in a jar" name="package-sources"> 
    <jar basedir="src" destfile="build/release/${ant.project.name}-${project.version}-sources.jar"/> 
</target> 


<target name="package_for_release" depends="jar,javadoc, package-sources"> 
    <mkdir dir="build/release"/> 
    <copy file="${dist.jar}" todir="build/release/"/> 
    <copy file="licence.txt" todir="build/release/"/> 
    <copy file="beni_oku.txt" todir="build/release/"/> 
    <mkdir dir="build/release/doc"/> 
    <copy todir="build/release/doc"> 
     <fileset dir="dist/javadoc" includes="**"/> 
    </copy> 

    <zip basedir="build/release/" includes="**" destfile="dist/${ant.project.name}-${project.version}.zip"/> 
</target> 

aperto build.xml in NetBeans rispetto tasto destro del mouse -> bersaglio eseguire -> [altri obiettivi] -> package_for_release

Script ottiene il numero di versione di un file di proprietà. Ho ottenuto questa soluzione da here.

1

Prova formica http://ant.apache.org/. È più facile da imparare rispetto a Maven e puoi compilare il codice.

+0

Nella mia esperienza è il contrario. Abbiamo usato uno script di form di form per costruire la nostra applicazione con codice sorgente e diversi file jar. Più tardi siamo passati a Maven e la mia impressione è stata che è più potente con il suo recupero automatico della lib. Ma ho solo un'esperienza limitata con entrambi. – kasten

+3

@seanizer: ci sono diversi tipi di hard. Ant è molto più facile da usare e imparare in modo incrementale perché non devi organizzare il tuo progetto attorno ad esso. –

+1

@ Michael è esattamente ciò che rende difficile la formica. Con Maven, devi effettuare la transizione una volta e sei attivo e funzionante, con la formica devi continuare a tweaking e continuare a chiedermi perché le cose non funzionano come ti aspetti. Con Maven, tutti i plugin agiscono insieme in modo naturale, perché sotto c'è un modello ben definito che tutti usano. –

0

Maven plugin potrebbe essere si risponde

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.7</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      <phase>package</phase> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <version>2.0.4</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      <phase>package</phase> 
     </execution> 
    </executions> 
</plugin> 
+0

Leggi la tua domanda con più attenzione. Tuttavia, per un semplice progetto Maven non rappresenta una curva di apprendimento troppo grande, imho. –

0

Con ant si può facilmente generare il javadoc, compilare, creare vasi e file zip. È meglio che farlo in netbeans, perché se qualcuno vuole contribuire potrebbe farlo con il suo IDE preferito.

0

Se si sta sviluppando una libreria che altri potrebbero aiutare a sviluppare, si dovrebbe pensare all'utilizzo di Maven.

In questo modo si progetto sarà indipendente dal vostro IDE e dipendenze anche, test e distribuzione saranno presi cura di centrale, al posto di sempre collaboratore di rotolamento loro own.m

11

tutto questo è l'esperto di configurazione è necessario collegare source e javadoc automaticamente alla build:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <id>attach-javadoc</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.1.2</version> 
      <executions> 
       <execution> 
        <id>attach-source</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Non è troppo orribile, vero?

+9

E le persone criticano la formica per il suo formato XML dettagliato ... –

+2

no? Ho solo criticato la formica perché è terribile codificare e debugare. seriamente: potresti togliere groupIds, id di esecuzione e versioni plugin da questo codice e sarebbe più breve, ma preferisco precisare le cose. –