NetBeans Project Management Talk from DevIgnition at Oracle HQ
Ryan Cuprak is speaking at DevIgnition at Oracle HQ on NetBeans Project Management.
Ryan runs the Connecticut Java User's Group and works at www.enginuityplm.com. He is the author of a book on NetBeans.
(couple of people in the room use NetBeans from the poll that was just done in the room)
- Why NetBeans?
- Choosing a project template
- Configuring your environment
- Creating a NetBeans Standard Project
- Importing Eclipse Projects
- Using Free Form
- Starting with Maven
- Tight Integration
- Support for things like Maven
- Intuitive Interface
- Open Source
- Is an application platform
- Oracle supported
- Powerful code editor
- Refactoring support
- VCS integration
- Swing GUI Builder
- JavaFX Composer
- Project Wizards
Showing screens of the various tools such as running SQL queries, profiling, etc.
- Server Integration
- Suports Multiple Languages
- Flexible Build System (ant, maven, etc)
- Enterprise Support
...and it has a certification exam (if you put much stock in that)
Showing exam questions...getting a less then enthusiastic response from the audience. I don't think they put much stock in certification exams for their IDE either.
* birds twirping....I mean chirping *
Choosing a Project Template
11 project categories
If it isn't an existing project you do get a choice of Ant or Maven. That is pretty cool.
Need to consider: What type of application? (Java Application, Desktop, Class Library, JavaFX, Java Web, Enterprise, EJB Module, Enterprise Client, etc)
"if it is a new project I would suggest going with Maven"
Always like to see people suggesting Maven, but look at the Development Links under Build Tools for more info on the various build tools and the various pros/cons.
"NetBeans Standard Projects are good, but Maven is the future"
Choosing a project template doesn't affect choices for file templates. You can still create a JPA provider, SVG file, etc. On a Java web application, you can add a Swing form and use the GUI Builder if you wanted to.
Configuring your Environment
Questions to ask:
- What Java platform is being targeted for deployment
- What version of Ant/Maven
- How are dependencies being managed
- What version control system are you using
The speaker is going into how you would do various things such as setting up your Ant/Maven Configs. Moving too fast to really capture it, but if there are slides online I will reference them at the end. It is being video taped, and I'm sure that it will be posted online sometime in the near future.
* How are dependencies being managed
* Maven repository
* Managed directory
* Stored Externally
etc....asking the standard dependency management questions, and how you would configure that in your NetBeans project.
Version Control: Supports CVS, SVN and Mecurial
Coming soon: Git!
NetBeans Standard Project
Talking about a "native" NetBeans project. Uses a generated NetBeans ant script. A build.xml file that can be invoked from the command line.
Going over the NetBeans specific files:
build-impl.xml, genfiles.properties, project.properties, project.xml
nbproject/private contains settings that are machine specific and DO NOT get checked into version control.
There are four different classpaths
- Compile Tests
- Run Tests
Can add other projects, libraries, JAR/folder to the classpath. Classpath entries can be ordered and the order is important if you have duplicate versions.
Modularizing project is a good practice
* Splits codebase
* Reduces overall build time
* Reduces IDE overhead
* Promotes good design
NetBeans does NOT export libraries
Ex. Project A depends on Project B, B depends on Lucene.jar
Lucene.jar will need to be added to Project A
** Seems to make it hard to modularize in my opinion...
If you are using Java Web Start, there will be a few additional files added to your project. "Pretty trivial to do in NetBeans if you want to create a Java Web Start application"
Doing a recap of what was mentioned, and showing some additional platforms.
Using Free Form Projects
"For projects that already have a highly customized ant script"
NetBeans will use your build script and delegates to and for all build operations. Dependencies are added in NetBeans to support the code editor. You will possibly have to update your build file to invoke some things such as the profiler.
* Most flexibly
* reuse an existing ant build script
* good chose for legacy
* Cannot depend on another project
* ...more to the list, but I didn't have time to get them.
You can specify the Build and Run actions, but NetBeans is going to make it's "best guess" at what those actions are for you.
Starting with Maven
Maven is much more then a build tool
* Defined project structures and build structure
* Dependency management
NetBeans has excellent support for Maven based projects
* Maven 3
* Repository browsing/searching
* pom is supported as a project file format
It is a challenge to migrate legacy projects
NetBeans has Maven Project Types, including Project with Existing POM
Maven Dependency Graph....that looks pretty cool! A nice visual of all of your dependencies/versions and what depends on what!
You can also Brose Dependencies quite nicely.