Source和Javadoc jar生成

时间:2010-10-26 11:55:36

标签: java build jar

我认为我的问题很简单。然而令人惊讶的是,我找不到任何简单的解决方案。

我正在Netbeans上开发一个开源Java库项目,像许多其他人一样,我想将它发布为binary.jar,source.jar和javadoc.jar。

有没有办法在Netbeans上自动生成它们?我知道maven可以做到。但学习曲线似乎太长了。

有一个类似的问题,但唯一的答案不起作用:Automatically generating source and doc jars in Netbeans

6 个答案:

答案 0 :(得分:11)

这是将源和javadoc自动附加到构建所需的所有maven配置:

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

这不太可怕,是吗?

答案 1 :(得分:11)

这是我最后提出的解决方案。它使用Ant并生成javadoc和源jar。然后它将二进制jar,javadoc,source.jar,license和readme文件存档到一个准备发布的zip文件中。

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

在NetBeans中打开build.xml而不是右键单击 - &gt;运行目标 - &gt; [其他目标] - &gt; package_for_release

脚本从属性文件中获取版本号。我从here得到了这个解决方案。

答案 2 :(得分:1)

尝试ant http://ant.apache.org/。它比maven更容易学习,可以进行代码编译。

答案 3 :(得分:0)

Maven插件可以回答

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

答案 4 :(得分:0)

使用ant,您可以轻松生成javadoc,编译,创建jar和zip文件。 它比netbeans更好,因为如果有人想贡献,他可以用他喜欢的IDE来做。

答案 5 :(得分:0)

如果您正在开发其他人可能帮助开发的库,那么您应该考虑使用Maven

这样,您的项目将独立于您的IDE,并且依赖性,测试和部署将集中处理,而不是自己的贡献者自己滚动.m