2010-10-26 16 views
12

Myślę, że moje pytanie jest łatwe. Jednak zaskakujące jest to, że nie mogłem znaleźć żadnego łatwego rozwiązania.Generowanie słoju i Javadoc

Zajmuję się projektem biblioteki Java o otwartym kodzie źródłowym w Netbeans i jak wielu innych chcę wydać go jako binary.jar, source.jar i javadoc.jar.

Czy istnieje sposób automatycznego generowania ich w Netbeans? Wiem, że maven może to zrobić. Ale krzywa uczenia się wydaje się zbyt długa.

Istnieje podobne pytanie, ale jedyną odpowiedzią nie działa: Automatically generating source and doc jars in Netbeans

+0

a) Myślę, że krzywa uczenia się rozwiązania maven jest dużo niższa niż w przypadku rozwiązania ręcznego b) proszę zdefiniować "nie działa" –

Odpowiedz

11

Oto rozwiązanie, które wymyśliłem na końcu. Używa Ant i generuje javadoc oraz jar źródłowy. Następnie archiwizuje pliki binarne jar, javadoc, source.jar, license i readme do pliku zip, który jest gotowy do wydania.

<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> 

Otwarte build.xml w NetBeans niż kliknięcie prawym -> uruchom docelowe -> [inne cele] -> package_for_release

Script dostaje numer wersji z pliku właściwości. Mam to rozwiązanie od here.

1

Spróbuj ant http://ant.apache.org/. Łatwiej się uczyć niż maven i możesz zrobić kompilację kodu.

+0

Z mojego doświadczenia wynika, że ​​jest odwrotnie. Użyliśmy skryptu budującego mrówki, aby zbudować naszą aplikację z kodem źródłowym i kilkoma plikami jar. Później przeszliśmy na maven i miałem wrażenie, że jest mocniejszy dzięki automatycznemu pobieraniu libów. Ale mam tylko ograniczone doświadczenie z obydwoma. – kasten

+3

@seanizer: jest wiele rodzajów trudnych. Mrówka jest znacznie łatwiejsza w obsłudze i uczeniu się przyrostowo, ponieważ nie musisz organizować swojego projektu wokół niej. –

+1

@Michael to właśnie sprawia, że ​​mrówka jest trudna. Z mavenem musisz raz dokonać przejścia i jesteś gotowy do pracy, z mrówką musisz ciągle poprawiać i zastanawiać się, dlaczego rzeczy nie działają tak, jak tego oczekujesz. W przypadku maven wszystkie wtyczki działają w naturalny sposób, ponieważ pod każdym modelem znajduje się dobrze zdefiniowany model. –

0

wtyczek Maven może być odpowiesz

<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

Po prostu przeczytaj uważnie swoje pytanie. Jednak w przypadku prostego projektu Maven nie przedstawia zbyt dużej krzywej uczenia się, imho. –

0

Z ant można łatwo wygenerować javadoc, kompilacji tworzyć słoiki i plik zip. To lepsze niż w netbeans, ponieważ jeśli ktoś chce wnieść swój wkład, może to zrobić za pomocą preferowanego IDE.

0

Jeśli tworzysz bibliotekę, w której inni mogą pomóc w rozwoju, powinieneś pomyśleć o użyciu Maven.

ten sposób projekt będzie niezależne od IDE i zależnościami, testów i wdrożenia zostaną załatwione centralnie, zamiast coraz specjalista toczenia ich own.m

11

to wszystko Maven config trzeba automatycznie dołącz źródło i javadoc do kompilacji:

<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> 

To nie jest zbyt straszne, prawda?

+9

A ludzie krytykują mrówkę za jej pełny format XML ... –

+2

czy oni? Krytykuję tylko mrówkę, ponieważ kodowanie i debugowanie są okropne. poważnie: można usunąć identyfikatory grup, identyfikatory wykonania i wersje wtyczek z tego kodu i będzie krótszy, ale wolę je przeliterować. –