AIDEgen aims to automate the project setup process for developers to work on Java project in popular IDE environment. Developers no longer need to manually configure an IntelliJ project, such as all the project dependencies. It's a **command line tool** that offers the following features: * Configure Intellij or Android Studio project files with the relevant module dependencies resolved. * Launch IDE for a specified sub-project or build target, i.e. frameworks/base or Settings. * Launch IDE for a specified folder which contains build targets, i.e. cts. * Auto configure JDK and Android coding style for Intellij. ## 1. Prerequisites: IDE installed and run $ '. build/envsetup.sh && lunch' under Android source root folder. ## 2. Execution: $ 'aidegen <module_name>... <module_path>...' Example to generate and launch IntelliJ project for framework and Settings: $ aidegen Settings framework $ aidegen packages/apps/Settings frameworks/base $ aidegen packages/apps/Settings framework $ 'aidegen <module> -i s' Example to generate and launch Android Studio project for framework: $ aidegen framework -i s ## 3. More argument: $ aidegen --help ## 4. FAQ: 1. Q: If I already have an IDE project file, and I run command AIDEGen to generate the same project file again, what’ll happen? A: The former IDEA project file will be overwritten by the newly generated one from the aidegen command. 2. Q: When do I need to re-run AIDEGen? A: Re-run AIDEGen after repo sync. 3. Q: Does AIDEGen support debug log dump? A: Use aidegen -v to get more debug information. 4. Q: After the aidegen command run locally, if there’s no IDEA with project shown up, what can I do ? A: Basic steps to do troubleshooting: - Make sure development environment is set up, please refer to prerequisites section. - Check error message in the aidegen command output. # Hint 1. In Intellij, uses [File] > [Invalidate Caches / Restart…] to force project panel updated when your IDE didn't sync. 2. If you run aidegen on a remote desktop, make sure there is no IntelliJ running in a different desktop session.