1
我想爲每個構建的庫項目啓用自動Javadoc生成。我有3個問題需要解決:Android版本的自動Javadoc構建
如何在IDE的構建過程中集成這樣的自動腳本? (Eclipse和IDEA)。
如何排除來自文檔自動生成
R
和Build
類 處理,因爲他們總是源的 命名空間下產生的。包和地方的Javadoc旁邊構建jar文件罐。
這個問題有點寬泛,但我相信在一個地方一個很好的綜合答案將節省很多麻煩。
我想爲每個構建的庫項目啓用自動Javadoc生成。我有3個問題需要解決:Android版本的自動Javadoc構建
如何在IDE的構建過程中集成這樣的自動腳本? (Eclipse和IDEA)。
如何排除來自文檔自動生成R
和Build
類 處理,因爲他們總是源的 命名空間下產生的。
包和地方的Javadoc旁邊構建jar文件罐。
這個問題有點寬泛,但我相信在一個地方一個很好的綜合答案將節省很多麻煩。
兩種方式:
Apache Ant
:默認的Ant構建文件位於sdk_path/tools/ant/build.xml
,這是導入到項目的build xml
。因此可以爲一些額外的工作添加自定義目標。放置它們的最佳位置是在項目根目錄下的custom_rules.xml
文件中,並在項目的build.xml
中導入。custom_rules.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="help">
<!-- IDE produces default jar as: out/production/classes.jar ,
so we define a custom target to rename the jar, generate and package docs jar along
with it -->
<target name="package_library" depends="init_pack_lib, check_lib_jar, rename_lib_jar,generate_javadoc"/>
<!-- init all properties to use-->
<target name="init_pack_lib">
<property name="real.out.dir" value="${basedir}/out/production"/>
<property name="lib.gen.jar.file" value="${real.out.dir}/classes.jar"/>
<property name="docs.dir" value="${real.out.dir}/Docs"/>
<!-- we need to peek into manifest xml file-->
<xmlproperty file="${manifest.abs.file}" collapseattributes="true"/>
<property name="app.package" value="${manifest.package}"/>
<property name="app.dist.name" value="${ant.project.name}_${manifest.android:versionName}"/>
<property name="doc.package.names" value="${app.package}.*"/>
</target>
<!-- is classes.jar generated ?-->
<target name="check_lib_jar">
<available file="${lib.gen.jar.file}" property="lib.jar.found"/>
</target>
<!-- if so, give it a better name-->
<target name="rename_lib_jar" if="${lib.jar.found}">
<move file="${lib.gen.jar.file}"
tofile="${real.out.dir}/${app.dist.name}.jar"/>
</target>
<!-- generate and package JavaDoc for project-->
<target name="generate_javadoc" depends="check_doc_dir, create_doc_dir, clean_docs_dir">
<javadoc packagenames="${doc.package.names}"
sourcepath="${source.absolute.dir}"
destdir="${docs.dir}"
verbose="false"
/>
<jar compress="${jar.compress}" basedir="${docs.dir}" jarfile="${real.out.dir}/${app.dist.name}_JavaDoc.jar"/>
</target>
<!-- what about JavaDocs destination directory ? -->
<target name="check_doc_dir">
<condition property="docs.dir.not.exists">
<not>
<available type="dir" file="${docs.dir}" property="docs.dir.exists"/>
</not>
</condition>
</target>
<!-- make docs directory if it isn't there already-->
<target name="create_doc_dir" if="docs.dir.not.exists">
<mkdir dir="${docs.dir}"/>
</target>
<!-- wipe previous JavaDocs files-->
<target name="clean_docs_dir" if="docs.dir.exists">
<delete includeemptydirs="true">
<fileset dir="${docs.dir}" includes="**/*"/>
</delete>
</target>
</project>
要創建包,只需從項目的根目錄下運行ant package_library
。您可以將這些包含在構建目標中,以便在每個構建中運行。
夥計 - 這真了不起。你需要更多的功勞。不能相信沒有關於在線的更多信息。謝謝! – sarfata