View
57
Download
0
Category
Tags:
Preview:
DESCRIPTION
IDE Bake Off IntelliJ IDEA 3.0. Austin Java Users Group Razvan Surdulescu March 25, 2003. IDEA Overview. IDEA is ~1.5 years old. Current version is 3.x. IDEA’s primary strength is refactoring : Rename/move/copy classes/methods/packages Extract field/method Many others … - PowerPoint PPT Presentation
Citation preview
IDE Bake OffIntelliJ IDEA 3.0
Austin Java Users GroupRazvan Surdulescu
March 25, 2003
IDEA Overview IDEA is ~1.5 years old. Current version is
3.x. IDEA’s primary strength is refactoring:
Rename/move/copy classes/methods/packages Extract field/method Many others …
Excellent (and unobtrusive) “assistance”: parses the current source file provides hints, underlines errors, etc.
IDEA Overview cont’d Many useful plug-ins written by the
developer community Not free: $499 (.com), $99 (.edu) Swing application
Startup time: TogetherJ < IDEA < Eclipse Memory footprint: ~100MB when “warm” Processor: PIII equivalent or better
Bake Off Environment Windows 2000 SP3 Sun J2SE 1.3.1_06 IntelliJ IDEA 3.0.2 ANT 1.5.1 (built-in to IDEA) JUnit 3.8.1 (built-in to IDEA) CVS 1.11.2 Tomcat 4.0.6 Electric XML 6.0.3
1a. Projects Setup new project
You can change the “default project” properties
You can use an existing source tree or create a new one.
IDEA stores all project settings in a.IPR and .IWS file: very clean and unobtrusive.
1b. Projects Changing the default editor
Not possible, although you can obviously edit the source files outside IDEA
The editor is very powerful and configurable:
Auto-complete, auto-indent, auto-import Class templates, code templates Many others …
1c. Projects Configuring the class path
Add/remove JAR/ZIP/directories to the class path.
All class path “elements” become candidates for auto-complete, code navigation, etc.
You can setup “libraries”: Define associated classpath, JavaDoc, and source
directory Use the library for compilation, documentation or
source code navigation Share libraries across projects
2a. Integration ANT 1.5.1 comes packaged with IDEA
You can add an existing build.xml to your project
IDEA will allow you to execute, filter and log ANT targets through the GUI
In case of error, you can double click on the error line and go to the code that caused it
IDEA can validate the ANT build file (find mistakes, unreferenced variables, etc.)
2b. Integration JUnit 3.8.1 comes packaged with
IDEA You can setup JUnit test targets and
execute them In case of failure, you can double-click
on the error line and go to the assertion that failed
2c. Integration CVS
IDEA comes with support for CVS and Star Team
If your sources are imported into CVS, you can do all CVS operations directly from the GUI
If you rename or delete a source file, IDEA will prompt you to keep the CVS repository in sync
IDEA comes with a nice visual diff tool, but you can use an external diff tool as well
3. Refactoring IDEA’s refactoring is exceptional:
Rename/move package Rename/move/copy/delete class Rename/move/copy/delete method Rename/move/copy/delete field Extract method Change method signature Many others
3. Refactoring cont’d Once I started refactoring in IDEA, I
could never go back to another IDE!
4. Debugging Local
Full-featured debugger: Code breakpoints (normal, conditional, counted) Exception breakpoints Thread, field inspector, watches
Remote Connect to a remote JVM via JPDA Source path permits source breakpoints and
navigation while debugging
5. Time Savers Code navigation
Go to class/file (ctrl+(shift)+N) Go to type/variable declaration (ctrl+(shift)+B) Go to override Go to JavaDoc (ctrl+Q) Class structure (ctrl+H, ctrl+F12)
Code format, layout (optimize imports) Standardized formatting => easy diffs
Refactoring (rename, move, delete, etc.)
5. Time Savers cont’d Search (usages, text in file, text in path) Code generation
Live templates (“psf-TAB”, “soutv-TAB”) Implement methods (interface) Generate getX()/setX() accessors Generate equals()/hashCode() Surround with Smart complete
5. Time Savers cont’d Logical layout
Almost everything can be done without the mouse
Key combinations and menus are very logical Configurable key bindings (e.g. Emacs, Visual
J++, …) Able to save multiple code styles, and use
them per-project. Really useful if you have multiple teams with
different coding standards.
5. Time Savers cont’d XML support
Text format Auto-complete DTD, XML Schema validation Validation of XML references/external
resources
5. Time Savers cont’d CVS Integration (operations, parse output) JUnit, ANT integration (parse output) Easy debugging (break points, source
path) JAVAC launched in process (fast) Inspect code (critique) Many useful plug-ins written by the
community (Plug-in Manager)
6. Visual Modeling No built-in features SimpleUML plug-in covers the
basics
7. Build a GUI No built-in features
8. Build/deploy a JSP Strong JSP and Tomcat 4.x support
Java syntax checking, code completion, and refactoring in scriptlets
Integrated JSP and Servlet debugging Web application file management Pre-deployment JSP compilation checks JSP tag completion and syntax
checking, including custom tag libraries
8. Build/deploy a JSP cont’d No support for packaging WAR
IDEA expects un-expanded WAR-like directory structure
Easy to package this directory structure from ANT (using the <war …> task)
9. Deploy an EJB Nominal support for creating new EJBs
Automatic management of deployment descriptor
Easy to add/delete EJBs Easy to setup Entity CMP relationships Functionality is still somewhat buggy/hokey
No support for packaging/deploying EJBs This is always container specific anyway
10a. Customization/Extension Installing/using plug-ins
Copy the .JAR file to /{idea_home}/plugins
Start IDEA The plug-in “Plug-In Manager” allows
you to see what plug-ins exist, download and install them directly from the GUI
10b. Customization/Extension Writing a plug-in
IntelliJ Plug-in Documentation Plug-in FAQ Two kinds of plug-ins: application-level
(created and initialized at start-up) and project-level (created for every project)
The plug-in configuration is provided in {plug-in JAR}/META-INF/plugin.xml
10b. Customization/Extension cont’d<idea-plugin> <name>VssIntegration</name> <description>Vss integration plug-In</description> <version>1.0</version> <vendor>Foo Inc.</vendor> <idea-version min=”3.0” max=”3.1”/>
<application-components> <component> <interface-class>com.foo.Component1Interface</interface-class> <implementation-class>com.foo.Component1Impl</implementation-class> </component> </application-components>
<project-components> <component> <interface-class>com.foo.Component2</interface-class> </component> </project-components> </idea-plugin>
Recommended