Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Unified Diff: docs/eclipse.md

Issue 2341093002: Update classpath to make Robolectric JUnit tests work in Eclipse. (Closed)
Patch Set: o Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/android/eclipse/.classpath » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/eclipse.md
diff --git a/docs/eclipse.md b/docs/eclipse.md
new file mode 100644
index 0000000000000000000000000000000000000000..bab57bcef6e8851e3baaabcec9774be30f49d74b
--- /dev/null
+++ b/docs/eclipse.md
@@ -0,0 +1,186 @@
+# Eclipse Configuration for Android
+[TOC]
+
+Instructions on using **Android Studio** are [here](android_studio.md).
+
+*** note
+This documentation was written for Eclipse 4.5 though other versions of Eclipse
+should work similarly.
+***
+
+## One time Eclipse Configuration
+This section contains set up steps for the very first time you start Eclipse.
+You should only need to go through these once, even if you switch workspaces.
+
+ * Starting Eclipse. It can be started a couple of ways:
+ * From Ubuntu main menu, select Applications > Programming > Eclipse 4.5
+ * From the command line, type eclipse45
+ * Pick a workspace somewhere in your hard drive.
+ * Install CDT - C/C++ Development Tools
+ * Select Help > Install New Software... from the main menu
+ * For Work with, select mars - http://download.eclipse.org/releases/mars
+ (or any other mirror that seems appropriate)
+ * Check Mobile and Device Development > C/C++ Remote Launch
+ * Check Programming Languages > C/C++ Development Tools
+ * Click through Next, Finish, etc to complete the wizard.
+ * If you get errors about a missing dependency on org.eclipse.rse.ui for the
+ "C++ Remote Launch" install, add an available update path of
+ http://download.eclipse.org/dsdp/tm/updates/3.2
+ * Click Restart Now when prompted to restart Eclipse
+ * Memory
+ * Close Eclipse
+ * Add the following lines to `~/.eclipse/init.sh`:
+
+ ```shell
+ ECLIPSE_MEM_START=1024m
+ ECLIPSE_MEM_MAX=8192m
+ ```
+
+## General Workspace Configuration
+These are settings that apply to all projects in your workspace. All the
+settings below are inside Window > Preferences.
+
+ * Android formatting
+ * Download [android-formatting.xml](https://raw.githubusercontent.com/android/platform_development/master/ide/eclipse/android-formatting.xml)
+ * Select Java > Code Style > Formatter from the tree on the left
+ * Click Import...
+ * Select the android-formatting.xml file
+ * Make sure Android is set as the Active Profile
+ * Java import order
+ * Download [android.importorder](https://raw.githubusercontent.com/android/platform_development/master/ide/eclipse/android.importorder)
+ * Select Java > Code Style > Organize Imports from the tree on the left
+ * Click Import...
+ * Select the android.importorder file
+ * Disable automatic refresh. Otherwise, Eclipse will constantly try to refresh
+ your projects (which can be slow).
+ * Select General > Workspace from the tree on the left.
+ * Uncheck Refresh using native hooks or polling (if present)
+ * Select General > Startup and Shutdown from the tree on the left.
+ * Uncheck Refresh workspace on startup (if present)
+ * Disable build before launching
+ * Select Run/Debug > Launching
+ * Uncheck Build (if required) before launching
+ * File types for .gyp and .gypi
+ * Go to General > Editors > File Associations
+ * Add `*.gyp` and `*.gypi` file types, and associate them with Python Editor
+ * See http://pydev.org/index.html for instructions on getting a Python
+ Editor configured in Eclipse
+ * Enjoy a happy life with Ctrl+Shift+P and automatic matching bracket
+ highlight.
+ * Tab ordering
+ * If you prefer ordering your tabs by most recently used, go to General >
+ Appearance and check Show most recently used tabs
+ * Autocomplete
+ * Select Java > Editor > Content Assist
+ * Check Enable auto activation
+ * Change Auto activation triggers for Java: to
+ `._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`
+ * Line Length
+ * If you want to change the line length indicator, go to General > Editors >
+ Text Editors
+ * Check Show print margin and change the Print margin column: to 100.
+
+## Project Configuration
+
+### Create the project
+
+ * Select File > New > Project... from the main menu.
+ * Select C/C++ > C++ from the project tree and click Next.
+ * Note: not "Makefile Project with Existing Code", even though that sounds
+ sensible).
+ * For Project name, use something meaningful to you. For example
+ "chrome-android”
+ * Uncheck Use default location. Click Browse... and select the src directory of
+ your Chromium gclient checkout
+ * For Project type, use Makefile project > Empty Project
+ * For Toolchains use -- Other Toolchain --
+ * Click Next
+ * Disable the default CDT builder
+ * Click Advanced Settings...
+ * Select Builders from the tree on the left
+ * Uncheck CDT Builder
+ * Click OK if a dialog appears warning you that this is an
+ 'advanced feature'
+ * Click OK to close the project properties dialog and return to the project
+ creation wizard
+ * Click Finish to create the project
+
+### Configure the project
+
+ * Right click on the project and select Properties
+ * Exclude Resources (OPTIONAL). This can speed Eclipse up a bit and may make
+ the indexer happier.
+ * Select Resources > Resource Filters
+ * Click Add...
+ * Select Exclude all, Select Folders, and check All children (recursive)
+ * Enter .git as the name
+ * Click OK
+ * Click Apply to commit the changes
+ * C/C++ Indexer (deprecated, seems to be done by default)</span>
+ * Select C/C++ General > Indexer from the tree on the left
+ * Click Restore Defaults
+ * Check Enable project specific settings
+ * Uncheck Index source files not included in the build
+ * Uncheck Allow heuristic resolution of includes
+ * Click Apply to commit the changes
+ * C/C++ Paths and Symbols. This help Eclipse build the symbol table for Chrome.
+ * From a shell, run `GYP_GENERATORS=eclipse build/gyp_chromium`
+ * This generates `<project root>/out/Release/eclipse-cdt-settings.xml` which
+ is used below.
+ * Select C/C++ General > Paths and Symbols from the tree on the left
+ * Click Restore Defaults to clear any old settings
+ * Click Import Settings... The import dialog should appear.
+ * Click Browse... A file browser should appear.
+ * Select `<project root>/out/Release/eclipse-cdt-settings.xml`.
+ * Click the Finish button. The entire preferences dialog should go away.
+ * Right click on the project and select Index > Rebuild
+ * Java
+ * Create a link from `<project root>/.classpath` to
+ `<project root>/tools/android/eclipse/.classpath`:
+ ```shell
+ ln -s tools/android/eclipse/.classpath .classpath
+ ```
+
+ * Edit `<project root>/.project` as follows to make your project a
+ Java project:
+ * Add the following lines inside `<buildSpec>`:
+ ```xml
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments></arguments>
+ </buildCommand>
+ ```
+ * Add the following line inside `<natures>`:
+ ```xml
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ ```
+
+### Run Robolectric JUnit tests
+
+ * Prerequisite: Install a Java 8 JRE and make sure it's available in Eclipse
+ * Create a new JUnit test target:
+ * Run > Run Configurations > New launch configuration > JUnit
+ * Using Android JUnit test launcher
+ * Test tab:
+ * Run a single test or all tests in the package you want
+ * Arguments tab:
+ * VM arguments:
+
+ ```
+ -Drobolectric.dependency.dir=out/Debug/lib.java/third_party/robolectric
+ ```
+
+ * Classpath tab:
+ * Bootstrap Entries:
+ * Advanced... > Add Library > JRE System Library
+ * Select a Java 8 JRE
+ * User Entries:
+ * Add JARs...
+ * Select the following JAR files from `third_party/robolectric/lib`:
+ * `json-20080701.jar`
+ * `tagsoup-1.2.jar`
+ * `android-all-5.0.0_r2-robolectric-1.jar`
+ * JRE tab:
+ * Execution environment: Select the Java 8 JRE
+ * Run or Debug the launch configuration
+
« no previous file with comments | « no previous file | tools/android/eclipse/.classpath » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698