|
IntelliJ IDEA in Action Duane K. Fields, Stephen Saunders, Eugene Belyaev March, 2006 | 544 pages ISBN: 1932394443 |
|||
![]() |
$22.50 | PDF ebook | |
![]() |
$44.95 | Softbound print book | |
Table of Contents
preface xxi
acknowledgments xxiii
about this book xxv
- 1 Getting started with IDEA 1
- 1.1 Installing and running IDEA 2
- Downloading the latest version 2
- Installing IDEA 4
- Running IDEA for the first time 6
- 1.2 Reviewing the IDEA interface 7
- The main IDEA workspace 7
- The main menu bar 8
- The IDEA toolbar 8
- The source code editor 9
- The tool windows 9
- 1.3 Implementing “Hello, World” 10
- Creating a project 10
- Making a Java class 15
- Building the project 17
- Running the project 17
- 1.4 The plot thickens 19
- Welcome to ACME Incorporated 19
- Starting the ACME project 19
- 1.5 Summary 20
- 2 Introducing the IDEA editor 22
- 2.1 Exploring the IDEA interface 23
- Hanging out in the gutter 24
- Using the marker bar 24
- Using the editor tabs 25
- Exploring the status bar 30
- Exploring the tool windows 32
- 2.2 Using the IDEA editor 40
- Writing the first ACME classes and interfaces 40
- Opening files into the editor 42
- Saving your work 45
- Printing your file 47
- Navigating in the editor 48
- Making text selections 50
- Using IDEA’s undo and redo mechanism 52
- Cutting, copying, and pasting 53
- Searching for and replacing text 55
- 2.3 Summary 61
- 3 Using the IDEA editor 63
- 3.1 What makes IDEA the intelligent editor? 64
- 3.2 Using code folding 64
- 3.3 Navigating through your Java code 66
- Navigating between methods 67
- Navigating to a symbol’s declaration 67
- Navigating to a symbol by name 69
- Navigating with the structure view pop-up 70
- Navigating to an overridden/implemented or overriding/implementing method 71
- 3.4 Analyzing your Java code in real-time 72
- How IDEA alerts you to problems in your code 73
- Monitoring the status of the current document 73
- Navigating between problems in the current file 74
- Controlling the reparse delay 74
- Configuring IDEA’s warning levels 74
- 3.5 Getting help from the JavaDoc and API references 76
- Viewing method parameters 76
- Viewing the JavaDoc 77
- Creating JavaDoc comments 78
- Generating your project’s JavaDoc reference 79
- 3.6 Code completion 80
- Using IDEA’s code-completion features to do your work for you 80
- Completing brackets, braces, parentheses, and quotation marks with smart completion 85
- Commenting out code 85
- Reformatting code 86
- Customizing IDEA’s code completion settings 87
- 3.7 Using IDEA’s code-generation tools 89
- Generating constructors 89
- Generating accessor and mutator methods 90
- Generating hashCode and equals methods 91
- Overriding methods in your superclass 94
- Implementing methods of an interface 94
- Creating delegation methods 95
- Enclosing a block of code 96
- Customizing code generated by IDEA 96
- 3.8 Programming by intention 97
- What are intention actions? 97
- Why and when IDEA suggests intention actions 98
- Using intention actions to fix errors 98
- Using intention actions for code completion 98
- Choosing an intention action to execute 99
- Disabling intention alerts 100
- Exploring some common intention actions 100
- 3.9 Continuing the ACME project 103
- 3.10 Summary 105
- 3.2 Using code folding 64
- 4 Managing projects 107
- 4.1 Understanding IDEA’s project strategy 108
- Examining the IDEA project hierarchy 108
- Selecting different types of modules 109
- Selecting a project structure 110
- 4.2 Working with projects 111
- Creating a new project 111
- Managing project settings 113
- Working with project files 118
- 4.3 Working with modules 119
- Managing project modules 119
- Creating a Java module with the module wizard 121
- Managing Java module settings 124
- 4.4 Working with libraries 128
- Understanding library basics 128
- Adding libraries to the project 130
- Migrating projects from IDEA 3.x 132
- Sharing projects with others 133
- Using path variables 133
- 4.5 Using the Project tool window 135
- Understanding the Project and Packages views 135
- Configuring the Project window 136
- 4.6 Summary 141
- 5 Building and running applications 142
- 5.1 Building a project 143
- How IDEA builds your project 143
- Setting up a compiler 145
- Building an application under IDEA 149
- Reviewing the results of the build 150
- 5.2 Extending IDEA’s build system with Ant 151
- Introducing Ant 152
- Improving your build process with Ant 155
- Working with Ant build files 156
- Executing Ant targets 160
- Following Ant’s progress in the Messages window 162
- Controlling Ant’s behavior 165
- 5.3 Running your project 171
- Managing Run/Debug configuration profiles 172
- Executing a Run configuration 177
- Using the Run window console 179
- 5.4 Expanding the ACME project 181
- Adding a library to the ACME project 181
- Improving and running the ACME project 182
- 5.5 Summary 184
- 6 Debugging applications 185
- 6.1 Introducing the debugging process 186
- Finding and fixing bugs with a debugger 186
- Preparing your code for debugging 188
- Debugging your source code 190
- 6.2 Working with breakpoints 191
- Managing breakpoints 192
- Working with line number breakpoints 195
- Working with method breakpoints 196
- Working with exception breakpoints 196
- Working with field watchpoints 197
- Setting conditional breakpoints 199
- Configuring breakpoint actions 201
- 6.3 Debugging an application 202
- Executing an application under the debugger 202
- Debugging an application on a remote server 205
- Stepping through the program 208
- Working with threads 211
- 6.4 Viewing runtime data in the debugger 214
- Understanding the Java call stack 214
- Inspecting a stack frame 216
- Working with watches 221
- Altering your program while debugging 222
- 6.5 Configuring the debugger 223
- Managing display preferences 223
- Limiting the scope of debugging 224
- Customizing the data display view 225
- Improving the speed of the debugger 227
- 6.6 Improving the quality of the ACME project 229
- 6.7 Summary 230
- 7 Testing applications with JUnit 231
- 7.1 Testing applications with JUnit 232
- Understanding the JUnit philosophy 232
- Exploring the JUnit API 233
- 7.2 Adding test cases to your project 236
- Creating a test case from a file template 237
- Adding the JUnit library to your Classpath 237
- 7.3 Running test cases in IDEA 238
- Creating a Run/Debug configuration for your test 238
- Running your unit test configuration 241
- 7.4 Working with IDEA’s JUnit test runner 242
- Exploring the JUnit tool window 243
- Monitoring testing progress 245
- Managing the testing session 246
- Analyzing test results 246
- 7.5 Improving the quality of the ACME project 252
- 7.6 Summary 253
- 8 Using version control 254
- 8.1 Configuring your project for version control 255
- Understanding version control basics 255
- Enabling version control support in IDEA 257
- Configuring IDEA to use CVS 259
- Configuring other types of version control systems 264
- 8.2 Working with files under CVS 267
- Retrieving files from the repository 267
- Working with files under CVS control 271
- Committing your changes 276
- Working with branches and tags 279
- Viewing change history 281
- 8.3 Using IDEA’s Local History 289
- Understanding IDEA’s Local History 289
- How IDEA tracks your changes 290
- Exploring your Local History 291
- 8.4 Summary 293
- 9 Analyzing and refactoring applications 295
- 9.1 Analyzing your code 296
- Tracking down dependencies 296
- Exploring code with the Structure view 298
- Exploring the code hierarchy 300
- 9.2 Locating potential problems with the code inspector 303
- Launching the inspector 304
- Specifying inspections to perform 306
- Viewing the inspection results 308
- 9.3 Other advanced code analysis features 309
- Using Structural Search and Replace 309
- Analyzing dependencies 314
- Locating duplicate code 316
- 9.4 Improving code design through refactoring 317
- Performing a refactoring 317
- Renaming code symbols to improve readability 320
- Refactoring to improve class or package organization 321
- Working with fields, variables, and constants 325
- Refactoring method calls to improve usability 328
- Restructuring class hierarchies 333
- Migrating source code to new package or class names 338
- 9.5 Summary 339
- 10 Developing Swing applications 341
- 10.1 Understanding the GUI Designer 342
- The GUI-building process 342
- Working with the user interface 343
- 10.2 Working with forms 345
- Creating a new form 345
- Placing components into the workspace 345
- Setting component properties 347
- Laying out a form 348
- 10.3 Designing an ACME GUI 351
- Creating a new GUI form in IDEA 351
- Manually creating the basic layout 351
- Applying the grid layout 352
- Setting component properties 352
- Touching up the final interface 352
- 10.4 Understanding properties 353
- Spanning rows and columns 354
- Setting an anchor point (cell alignment) 354
- Using spacers to control layout 355
- Controlling the grid spacing 356
- Setting container margins 356
- Setting sizing policies 356
- Setting fill policies 357
- Adding borders 357
- 10.5 Adding functionality to forms 357
- Binding forms and their components 358
- Creating a constructor 359
- Generating getter/setter methods for fields bound to data 361
- Invoking your form 361
- 10.6 Adding functionality to the ACME GUI 362
- Binding the ACME GUI to a form class 362
- Creating a constructor 363
- Implementing the Convert functionality 364
- Providing an entry point 365
- 10.7 Building and running your form 366
- Generating the GUI to binary or source 367
- Including the forms library 367
- Compiling with Ant 368
- 10.8 Summary 369
- 11 Developing J2EE applications 370
- 11.1 Working with web applications 371
- Understanding web modules 371
- Creating a new web module 372
- Configuring a web module 373
- Using the J2EE tab of the Project tool window 377
- Working with servlets and filters 379
- Working with JavaServer Pages 380
- Implementing an ACME web application 386
- 11.2 Working with EJBs 390
- Working with EJB modules 391
- Working with J2EE application modules 399
- 11.3 Understanding application server integration 402
- Integrating IDEA with Tomcat 403
- Integrating IDEA with WebLogic 404
- Integrating IDEA with generic application servers 404
- Installing Tomcat to support the ACME web application 405
- 11.4 Running and debugging web applications 406
- Running your web application 408
- Running the ACME web application on Tomcat 408
- Debugging your web application 410
- 11.5 Working with web content (IDEA 5.0 and higher) 412
- Supported file types and content 412
- Basic editor features 415
- Coding assistance for web content 417
- Navigating through web content files 421
- Refactoring web content 422
- 11.6 Summary 423
- 12 Customizing IDEA 425
- 12.1 Configuring IDEA’s options and settings 426
- Customizing the interface 429
- 12.2 Customizing your code style 430
- How IDEA uses your code style 431
- Variable naming and general formatting 432
- Controlling indentation and braces 434
- Controlling whitespace 436
- Customizing import statements 437
- Controlling line wraps 439
- Adherence to a code standard—made easy 439
- 12.3 Customizing your color scheme 440
- How IDEA uses color schemes 440
- Editor properties 440
- Changing font settings 445
- 12.4 Customizing keyboard shortcuts 447
- Using keyboard shortcuts 448
- Navigating the interface with the keyboard 448
- Selecting a keymap 448
- Creating a new keymap 450
- Defining keyboard shortcuts 450
- Defining mouse shortcuts 452
- Defining quick lists 452
- 12.5 Working with non-Java file types 453
- Modifying file types settings 453
- Registering file extensions 454
- Creating a custom file type 454
- 12.6 Using file templates 455
- Creating a new file from a template 456
- Working with template includes 459
- 12.7 Increasing the amount of memory allocated to IDEA 459
- 12.8 Summary 460
- 13 Extending IDEA 461
- 13.1 Working with bookmarks 462
- Placing and using numbered bookmarks 463
- Placing and using anonymous bookmarks 463
- Managing your bookmarks collection 464
- 13.2 Working with ToDo lists 465
- Creating custom ToDo list items 467
- Using ToDo filters 468
- 13.3 The IDEA Commander 468
- Working with the IDEA Commander 469
- File operations 471
- 13.4 Integrating external tools with IDEA 472
- Managing the tool list 472
- Accessing external tools from within IDEA 476
- Reacting to the results of external tools 478
- 13.5 Using IDEA’s open APIs 479
- 13.6 Summary 480
-
appendix: Getting help with IDEA 481
index 487DESCRIPTION
“… an entertaining read with excellent examples. Even a seasoned IDEA user will find it helpful.”
—Sean Garagan, Technical Director, Versata, Inc.If you work with IntelliJ IDEA™, you know its unique power and have already seen a jump in your productivity. But because IntelliJ IDEA is a rich system you, like many others, are probably using just a small subset of its features. You can overcome this syndrome and see your productivity take another leap forward—all you need is this book.
For new users, this book is a logically organized and clearly expressed introduction to a big subject. For veterans, it is also an invaluable guide to the expert techniques they need to know to draw a lot more power out of this incredible tool. You get a broad overview and deep understanding of the features in IntelliJ IDEA.
The book takes you through a sample project—from using the editor for entering and editing code, to building, running and debugging, and testing your application. The journey then continues into the far corners of the system. Along the way, the authors carefully explain IntelliJ IDEA’s features and show you fun tricks and productivity-enhancing techniques that are the result of their combined years of experience.
What’s Inside
- Intelligent editing of Java • JSP • XML • HTML • custom file types
- How to add plugins • customize and extend IntelliJ IDEA • fine tune your code • inspect and analyze • refactor • develop Swing and J2EE applications
ABOUT THE AUTHORS...
Duane K. Fields is a software developer and manager. He co-authored Manning’s best-selling Web Development with JavaServer Pages. Stephen Saunders is a software engineer with experience in knowledge management, financial services, and data management. Eugene Belyaev is the cofounder, president, and chief technology officer of JetBrains, the company that created IDEA.

