Подтвердить что ты не робот

Источник и Javadoc jar generation

Я думаю, что мой вопрос прост. Однако удивительно, что я не мог найти легкого решения.

Я разрабатываю проект библиотеки Java с открытым исходным кодом на Netbeans и, как и многие другие, хочу выпустить его как binary.jar, source.jar и javadoc.jar.

Есть ли способ автоматически генерировать их на Netbeans? Я знаю, что он может это сделать. Но кривая обучения кажется слишком длинной.

Есть аналогичный вопрос, но единственный ответ не работал: Автоматическое создание блоков источника и документа в Netbeans

4b9b3361

Ответ 1

Вот решение, которое я придумал в конце. Он использует Ant и генерирует javadoc и исходную банку. Затем он архивирует двоичный jar, javadoc, source.jar, файл лицензии и 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>

Откройте файл build.xml в NetBeans, а не щелкните правой кнопкой мыши → запустить цель → [другие цели] → package_for_release

Script получает номер версии из файла свойств. Я получил это решение от здесь.

Ответ 2

Это все настройки maven, необходимые для автоматического подключения источника и javadoc к сборке:

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

Это не слишком ужасно, не так ли?

Ответ 3

Попробуйте ant http://ant.apache.org/. Это легче узнать, чем maven, и может выполнять компиляцию кода.

Ответ 4

Плагины 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>

Ответ 5

С ant вы можете легко сгенерировать свой javadoc, скомпилировать, создать банки и zip файл. Это лучше, чем делать это в netbeans, потому что, если кто-то хочет внести свой вклад, он может сделать это с помощью своей предпочтительной IDE.

Ответ 6

Если вы разрабатываете библиотеку, которую могут помочь другие, вам следует подумать об использовании Maven.

Таким образом, проект будет не зависящим от вашей среды разработки, а также зависимостей, тестов и развертывания будет позабочен о централизованном использовании, а не когда-либо внесенных в него роликом.