Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Setting up a an Eclipse project to build CXF is pretty easy. There are three parts to it:

...

  • Checkstyle - we use checkstyle to make sure we have consistent code style as well as to find various types of bugs and other issues. httphttps://eclipse-cscheckstyle.sourceforge.netio/update
  • PMD - like Checkstyle, we use PMD to find potential programming problems in the code. Point the Eclipse auto-install thing at httphttps://pmd.sourceforgegithub.netio/eclipseSubversion plugins - there are a couple of these to enable Subversion checkins/checkouts from within eclipse: http://subclipse.tigris.org/update_1.4.x

Panel

(info) While there exist Maven plug-ins for Eclipse, team developer experience has found using them with CXF problematic at best. We recommend importing the CXF source code as Eclipse projects as shown below and/or using Maven externally (i.e., from a command-line window) as discussed on the CXF build page.

To install the plugins:

  • Go to

    No Format
    
    Help -> Software updates -> Find and install
    
  • Select "Search for new features to install" and hit Next
  • For each of the above plugins, click on "New Remote Site", enter a name and the above URL.
  • Select the three new sites and click finish. It will search for the new plugins. Select them all and hit OK.
  • Eclipse Marketplace
    


  • On the Search tab, enter "Checkstyle" to search for it and install the "Checkstyle Plugin"
  • On the Search tab, enter "PMD" to search for PMD. There are two PMD plugins, install the "pmd-eclipse-plugin" 

Experimental Alternative: M2Eclipse

Some of us are starting to experiment with using M2Eclipse. See this page for instructionsIt will then download them and install them.

Creating a workspace

First check out CXF from Subversion.

To create a workspace, just run from the root directory of the CXF project (see the build page for more detailed information):

No Format

> mvn -Pfastinstall
> mvn -Psetup.eclipse  

OR

No Format

> mvn install -Pfastinstall -Psetup.eclipse

...

If you don't want the workspace there, you can run:

No Format

"mvn -Psetup.eclipse -Declipse.workspace.dir=path/to/workspace"

If you don't want the eclipse projects' output directory to be ./target directory (by default) but ./eclipse-classes, you can run:

No Format

"mvn -Psetup.eclipse -Pset.eclipse.output"

...

  • In eclipse, switch to the workspace setup as you created above.
  • Go To:

    No Format
    
    File -> Import....
    


  • Select "Existing Projects into Workspace" and hit Next
  • Select root directory: enter the path to your trunk directory and hit Next.
  • Select all the subprojects and hit Finish. Eclipse will import and rebuild all the subprojects selected. This will take a while.

...

With the latest version (2.5) of the maven-eclipse-plugin, when you run "mvn eclipse:eclipse" on a project, if it knows where your workspace is, it will see what projects are already defined and wire them in to the new project instead of pointing at the jars in your ~/.m2/repository dir. Thus, debugging is a lot easier. There are two ways to get it to know where your workspace is:

  1. Explicit Explicitly on the command line. When running eclipse:eclipse, add -Declipse.workspace=/home/dkulp/working/workspace
  2. Update

    you

    your Maven ~/.m2/settings.xml to have a active profile that always sets

    the

    these variables. Thus, whenever the eclipse plugin looks for it, it know where the workspace is. In settings.xml, do:

    Code Block
    ...
    
        <activeProfiles>
            <activeProfile>extra</activeProfile>
        </activeProfiles>
        <profiles>
            <profile>
                <id>extra</id>
                <properties>
                    <eclipse.workspace>/home/dkulp/working/workspace</eclipse.workspace>
    
                    <eclipse.workspace.dir>/home/dkulp/working/workspace</eclipse.workspace.dir>
                </properties>
            </profile>
        </profiles>
    ...
    

    By doing that, you can pretty much run eclipse:eclipse (or -Psetup.eclipse for cxf projects) at any point and it will always wire the new project to depend on the existing projects.

How Does This All Work, Anyway?

If you are wondering about how all this manages to make Eclipse, Maven, Checkstyle, and PMD
cooperate, see Connecting Maven, Eclipse, Checkstyle, and PMD.