Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Source and Javadoc jar generation

Tags:

java

jar

build

I think my question is easy. However it is surprising that I couldn't find any easy solution.

I'm developing an open source Java library project on Netbeans and like many others I want to release it as binary.jar, source.jar and javadoc.jar.

Is there a way to generate them automatically on Netbeans? I know maven can do it. But the learning curve seems too long.

There is a similar question but the only answer didn't work: Automatically generating source and doc jars in Netbeans

like image 363
hrzafer Avatar asked Oct 26 '10 11:10

hrzafer


2 Answers

Here is the solution I came up with at the end. It uses Ant and generates javadoc and source jar. Then it archives binary jar, javadoc, source.jar, licence and readme file in to a zip file that is ready to release.

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

Open build.xml in NetBeans than right click - > run target -> [other targets] -> package_for_release

Script gets the version number from a properties file. I got this solution from here.

like image 113
hrzafer Avatar answered Oct 12 '22 12:10

hrzafer


This is all the maven config you need to attach source and javadoc automatically to the 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>

That's not too awful, is it?

like image 30
Sean Patrick Floyd Avatar answered Oct 12 '22 12:10

Sean Patrick Floyd