diff options
author | Tor Norbye <tnorbye@google.com> | 2012-07-20 16:24:07 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-07-23 15:36:02 -0700 |
commit | a55067435f57c7a25f416ecde509d790a5e0799e (patch) | |
tree | d321798bed2dda4a85f31789aa680c47dddebac5 /anttasks | |
parent | 08eecafc50dceff0e7eb6960763c2b6ca5601524 (diff) | |
download | sdk-a55067435f57c7a25f416ecde509d790a5e0799e.zip sdk-a55067435f57c7a25f416ecde509d790a5e0799e.tar.gz sdk-a55067435f57c7a25f416ecde509d790a5e0799e.tar.bz2 |
Add lint target for ant
Running "ant lint" will now run lint on the project, and dump out the
errors to the console as well as also export the errors to lint.xml
and lint.html int the bin/ directory.
This changeset also modifies the lint CLI to allow multiple
simultaneous result reporters - so you don't have to run lint twice in
order to get both an .xml and an .html report for example (which is
useful when you're running lint on a continuous integration server,
and you want the .xml file for the lint plugin trend graph and the
html file as a user readable report to click through to from the build
page.)
Change-Id: Idf8f3f5de0857eb9e7180267a066ae933640682d
Diffstat (limited to 'anttasks')
-rw-r--r-- | anttasks/src/anttasks.properties | 1 | ||||
-rw-r--r-- | anttasks/src/com/android/ant/LintExecTask.java | 86 |
2 files changed, 87 insertions, 0 deletions
diff --git a/anttasks/src/anttasks.properties b/anttasks/src/anttasks.properties index 04047e5..78b6513 100644 --- a/anttasks/src/anttasks.properties +++ b/anttasks/src/anttasks.properties @@ -18,3 +18,4 @@ zipalign: com.android.ant.ZipAlignTask xpath: com.android.ant.XPathTask if: com.android.ant.IfElseTask propertybyreplace: com.android.ant.PropertyByReplaceTask +lint: com.android.ant.LintExecTask diff --git a/anttasks/src/com/android/ant/LintExecTask.java b/anttasks/src/com/android/ant/LintExecTask.java new file mode 100644 index 0000000..64a6c00 --- /dev/null +++ b/anttasks/src/com/android/ant/LintExecTask.java @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ant; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.taskdefs.ExecTask; +import org.apache.tools.ant.types.Path; + +/** + * Custom task to execute lint + */ +public class LintExecTask extends ExecTask { + + private String mExecutable; + private String mHtml; + private String mXml; + + /** + * Sets the value of the "executable" attribute. + * @param executable the value. + */ + public void setExecutable(Path executable) { + mExecutable = TaskHelper.checkSinglePath("executable", executable); + } + + /** + * Sets the value of the "html" attribute: a path to a file or directory name + * where the HTML report should be written. + * + * @param html path to the html report + */ + public void setHtml(Path html) { + mHtml = TaskHelper.checkSinglePath("html", html); + } + + /** + * Sets the value of the "xml" attribute: a path to a file or directory name + * where the XML report should be written. + * + * @param xml path to the xml report + */ + public void setXml(Path xml) { + mXml = TaskHelper.checkSinglePath("xml", xml); + } + + @Override + public void execute() throws BuildException { + + ExecTask task = new ExecTask(); + task.setProject(getProject()); + task.setOwningTarget(getOwningTarget()); + task.setExecutable(mExecutable); + task.setTaskName("lint"); + task.setFailonerror(true); + + task.createArg().setValue("--text"); + task.createArg().setValue("stdout"); + + if (mHtml != null) { + task.createArg().setValue("--html"); + task.createArg().setValue(mHtml); + } + + if (mXml != null) { + task.createArg().setValue("--xml"); + task.createArg().setValue(mXml); + } + + task.createArg().setValue(getProject().getBaseDir().getAbsolutePath()); + task.execute(); + } +} |