<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>javadoc &#8211; Wiebe Elsinga</title>
	<atom:link href="http://wiebe-elsinga.com/blog/tag/javadoc/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiebe-elsinga.com/blog</link>
	<description>Blog</description>
	<lastBuildDate>Fri, 20 Mar 2015 20:42:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8</generator>
	<item>
		<title>Archive addition Android artifacts with Gradle.</title>
		<link>http://wiebe-elsinga.com/blog/archive-addition-android-artifacts-with-gradle/</link>
		
		<dc:creator><![CDATA[W.Elsinga]]></dc:creator>
		<pubDate>Fri, 20 Mar 2015 06:42:19 +0000</pubDate>
				<category><![CDATA[AndroidDev Tips]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[gradle]]></category>
		<category><![CDATA[javadoc]]></category>
		<category><![CDATA[Proguard]]></category>
		<guid isPermaLink="false">http://wiebe-elsinga.com/blog/?p=1651</guid>

					<description><![CDATA[When building Android applications or libraries common practice is to save your artifacts to a local file storage or repo. Beside your APK there are some additional artifacts you want/need to save, and you want gradle to do this. Most common ones are Javadoc, your source files and perhaps your proguard generated files like the mapping file. I naturally wanted a Gradle task to handle this. So lets have a look as some tasks you may want to use. Adding Javadoc archive tasks The following will add tasks to generate Javadocs for each build type and assemble it into a jar archive . 123456789101112131415161718192021222324252627282930313233343536android.applicationVariants.all &#123; variant -&#62; &#160; &#160; project.task&#40;&#34;${variant.name.capitalize()}Javadoc&#34;, type: Javadoc&#41; &#123; &#160; &#160; &#160; &#160; destinationDir = new File&#40;&#34;$project.buildDir/javadoc/$variant.name&#34;&#41; &#160; &#160; &#160; &#160; source = variant.javaCompile.source &#160; &#160; &#160; &#160; ext.androidJar = &#34;${project.android.sdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar&#34; &#160; &#160; &#160; &#160; classpath = project.files&#40;variant.javaCompile.classpath.files&#41; + project.files&#40;ext.androidJar&#41; &#160; &#160; &#160; &#160; options &#123; &#160; &#160; &#160; &#160; &#160; &#160; linksOffline&#40;&#34;http://d.android.com/reference&#34;, &#34;${project.android.sdkDirectory}/docs/reference&#34;&#41; &#160; &#160; &#160; &#160; &#160; &#160; links&#40;&#34;http://docs.oracle.com/javase/7/docs/api/&#34;&#41;; &#160; &#160; &#160; &#160; &#160; &#160; setMemberLevel&#40;JavadocMemberLevel.PACKAGE&#41; &#160; &#160; &#160; &#160; &#160; &#160; docEncoding = 'UTF-8' &#160; &#160; &#160; &#160; &#160; &#160; encoding = 'UTF-8' &#160; &#160; &#160; &#160; &#160; &#160; charSet = 'UTF-8' &#160; &#160; &#160; &#160; &#125; &#160; &#160; &#160; &#160; exclude '**/BuildConfig.java' &#160; &#160; &#160; &#160; exclude '**/R.java' &#160; &#160; &#125; &#160; &#160; project.task&#40;&#34;generate${variant.name.capitalize()}JavadocJar&#34;, type: Jar, dependsOn: &#34;${variant.name.capitalize()}Javadoc&#34;&#41; &#123; &#160; &#160; &#160; &#160; classifier 'javadoc' &#160; &#160; &#160; &#160; description = 'Assembles a jar archive containing the generated Javadoc API documentation of $variant.name.' &#160; &#160; &#160; &#160; destinationDir = new File&#40;&#34;$project.buildDir/libs/&#34;&#41; &#160; &#160; &#160; &#160; exclude '**/BuildConfig.class' &#160; &#160; &#160; &#160; exclude '**/R.class' &#160; &#160; &#160; &#160; from &#34;$project.buildDir/javadoc/$variant.name&#34; &#160; &#160; &#125; &#125; When added to your build.gradle file, generate your Javadoc jar archive from the command line with gradle generateReleaseJavadocJar. Adding Source archive tasks The following will add tasks to assemble a jar archive containing the Java sources. 123456789101112131415android.applicationVariants.all &#123; variant -&#62; &#160; &#160; project.task&#40;&#34;generate${variant.name.capitalize()}SourcesJar&#34;, type: Jar&#41; &#123; &#160; &#160; &#160; &#160; classifier = 'sources' &#160; &#160; &#160; &#160; description = 'Assembles a jar archive containing the main sources of $variant.name..' &#160; &#160; &#160; &#160; destinationDir = new File&#40;&#34;$project.buildDir/libs/&#34;&#41; &#160; &#160; &#160; &#160; // exclude generated files &#160; &#160; &#160; &#160; exclude '**/BuildConfig.java' &#160; &#160; &#160; &#160; exclude '**/R.java' &#160; &#160; &#160; &#160; from variant.javaCompile.source &#160; &#160; &#125; &#125; When added to your build.gradle file, generate your Sources jar archive from the command line with gradle generateReleaseSourcesJar. Adding Proguard archive tasks The following will add tasks to assemble a zip archive containing the generated proguard files. 12345678910android.applicationVariants.all &#123; variant -&#62; &#160; &#160; project.task&#40;&#34;generate${variant.name.capitalize()}ProguardFilesJar&#34;, type: Zip&#41; &#123; &#160; &#160; &#160; &#160; classifier 'proguard' &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; description = 'Assembles a jar archive containing the Proguard files of $variant.name..' &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; destinationDir = new File&#40;&#34;$project.buildDir/libs/&#34;&#41; &#160; &#160; &#160; &#160; from &#34;$project.buildDir/outputs/mapping&#34; &#160; &#160; &#125; &#160; &#160; &#125; When added to your build.gradle file, generate your Proguard zip archive from the command line with gradle generateReleaseProguardFilesJar.]]></description>
										<content:encoded><![CDATA[<p>When building Android applications or libraries common practice is to save your artifacts to a local file storage or repo.</p>
<p>Beside your APK there are some additional artifacts you want/need to save, and you want gradle to do this. Most common ones are Javadoc, your source files and perhaps your <a href="http://proguard.sourceforge.net/">proguard</a> generated files like the mapping file.</p>
<p>I naturally wanted a Gradle task to handle this. So lets have a look as some tasks you may want to use.<br />
</p>
<h3>Adding Javadoc archive tasks</h3>
<p>The following will add tasks to generate Javadocs for each build type and assemble it into a jar archive .</p>
<div class="codecolorer-container groovy blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td><div class="groovy codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">android.<span style="color: #006600;">applicationVariants</span>.<span style="color: #006600;">all</span> <span style="color: #66cc66;">&#123;</span> variant <span style="color: #66cc66;">-&gt;</span><br />
&nbsp; &nbsp; project.<span style="color: #006600;">task</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;${variant.name.capitalize()}Javadoc&quot;</span>, type: Javadoc<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; destinationDir <span style="color: #66cc66;">=</span> <a href="http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20new"><span style="color: #000000; font-weight: bold;">new</span></a> <a href="http://www.google.de/search?as_q=File&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F"><span style="color: #aaaadd; font-weight: bold;">File</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;$project.buildDir/javadoc/$variant.name&quot;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; source <span style="color: #66cc66;">=</span> variant.<span style="color: #006600;">javaCompile</span>.<span style="color: #006600;">source</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; ext.<span style="color: #006600;">androidJar</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;${project.android.sdkDirectory}/platforms/${project.android.compileSdkVersion}/android.jar&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; classpath <span style="color: #66cc66;">=</span> project.<span style="color: #006600;">files</span><span style="color: #66cc66;">&#40;</span>variant.<span style="color: #006600;">javaCompile</span>.<span style="color: #006600;">classpath</span>.<span style="color: #006600;">files</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">+</span> project.<span style="color: #006600;">files</span><span style="color: #66cc66;">&#40;</span>ext.<span style="color: #006600;">androidJar</span><span style="color: #66cc66;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; options <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; linksOffline<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://d.android.com/reference&quot;</span>, <span style="color: #ff0000;">&quot;${project.android.sdkDirectory}/docs/reference&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; links<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://docs.oracle.com/javase/7/docs/api/&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setMemberLevel<span style="color: #66cc66;">&#40;</span>JavadocMemberLevel.<a href="http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20package"><span style="color: #000000; font-weight: bold;">PACKAGE</span></a><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; docEncoding <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'UTF-8'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encoding <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'UTF-8'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; charSet <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'UTF-8'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/BuildConfig.java'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/R.java'</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp; &nbsp; project.<span style="color: #006600;">task</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;generate${variant.name.capitalize()}JavadocJar&quot;</span>, type: Jar, dependsOn: <span style="color: #ff0000;">&quot;${variant.name.capitalize()}Javadoc&quot;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; classifier <span style="color: #ff0000;">'javadoc'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; description <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Assembles a jar archive containing the generated Javadoc API documentation of $variant.name.'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; destinationDir <span style="color: #66cc66;">=</span> <a href="http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20new"><span style="color: #000000; font-weight: bold;">new</span></a> <a href="http://www.google.de/search?as_q=File&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F"><span style="color: #aaaadd; font-weight: bold;">File</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;$project.buildDir/libs/&quot;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/BuildConfig.class'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/R.class'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; from <span style="color: #ff0000;">&quot;$project.buildDir/javadoc/$variant.name&quot;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div></td></tr></tbody></table></div>
<p>When added to your <code class="codecolorer bash blackboard"><span class="bash">build.gradle</span></code> file, generate your Javadoc jar archive from the command line with <code class="codecolorer bash blackboard"><span class="bash">gradle generateReleaseJavadocJar</span></code>.<br />
</p>
<h3>Adding Source archive tasks</h3>
<p>The following will add tasks to assemble a jar archive containing the Java sources.</p>
<div class="codecolorer-container groovy blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="groovy codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">android.<span style="color: #006600;">applicationVariants</span>.<span style="color: #006600;">all</span> <span style="color: #66cc66;">&#123;</span> variant <span style="color: #66cc66;">-&gt;</span><br />
&nbsp; &nbsp; project.<span style="color: #006600;">task</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;generate${variant.name.capitalize()}SourcesJar&quot;</span>, type: Jar<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; classifier <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'sources'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; description <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Assembles a jar archive containing the main sources of $variant.name..'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; destinationDir <span style="color: #66cc66;">=</span> <a href="http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20new"><span style="color: #000000; font-weight: bold;">new</span></a> <a href="http://www.google.de/search?as_q=File&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F"><span style="color: #aaaadd; font-weight: bold;">File</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;$project.buildDir/libs/&quot;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// exclude generated files</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/BuildConfig.java'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; exclude <span style="color: #ff0000;">'**/R.java'</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; from variant.<span style="color: #006600;">javaCompile</span>.<span style="color: #006600;">source</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div></td></tr></tbody></table></div>
<p>When added to your <code class="codecolorer bash blackboard"><span class="bash">build.gradle</span></code> file, generate your Sources jar archive from the command line with <code class="codecolorer bash blackboard"><span class="bash">gradle generateReleaseSourcesJar</span></code>.<br />
</p>
<h3>Adding Proguard archive tasks</h3>
<p>The following will add tasks to assemble a zip archive containing the generated proguard files.</p>
<div class="codecolorer-container groovy blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="groovy codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">android.<span style="color: #006600;">applicationVariants</span>.<span style="color: #006600;">all</span> <span style="color: #66cc66;">&#123;</span> variant <span style="color: #66cc66;">-&gt;</span><br />
&nbsp; &nbsp; project.<span style="color: #006600;">task</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;generate${variant.name.capitalize()}ProguardFilesJar&quot;</span>, type: Zip<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; classifier <span style="color: #ff0000;">'proguard'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; description <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Assembles a jar archive containing the Proguard files of $variant.name..'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; destinationDir <span style="color: #66cc66;">=</span> <a href="http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20new"><span style="color: #000000; font-weight: bold;">new</span></a> <a href="http://www.google.de/search?as_q=File&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F"><span style="color: #aaaadd; font-weight: bold;">File</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;$project.buildDir/libs/&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; from <span style="color: #ff0000;">&quot;$project.buildDir/outputs/mapping&quot;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span> &nbsp; &nbsp;<br />
<span style="color: #66cc66;">&#125;</span></div></td></tr></tbody></table></div>
<p>When added to your <code class="codecolorer bash blackboard"><span class="bash">build.gradle</span></code> file, generate your Proguard zip archive from the command line with <code class="codecolorer bash blackboard"><span class="bash">gradle generateReleaseProguardFilesJar</span></code>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
