OneBigProjectVsSeveralSmallProjects

From Protege Wiki
Jump to: navigation, search

There are two approaches to working with the Protege sources in an IDE. The first approach is to load one big project into the IDE. In this approach, the developer checks out one project from the svn location

   http://smi-protege.stanford.edu/repos/protege/protege4/protege-standalone/trunk

and sets up the IDE to see this as one big project. A major advantage of this mode is that the developer can use ant tools to build a distribution and can additionally optimize the IDE setup for use with the ant tools. In particular, if the IDE has the ability to compile different source directories into different class directories then there is an ant target, ant ide that will configure an easily runnable IDE. Alternatively, a developer may choose to checkout plugin projects that he is interested on an individual basis. Instead of having one big IDE project this developer will have several smaller projects. A developer using this approach is dependent on the Protege alpha builds to construct a runnable version of Protege. There is an option described in

   http://protegewiki.stanford.edu/index.php/CompileProtege4InEclipse

that allows the developer to run the Protege distribution and run the most recently compiled version of the plugins that the developer is modifying.

Here are some of the advantages of several small projects:

  • A plugin (for example) developer can checkout a minimal collection of sources to do his work. For example, a plugin developer may choose to only checkout and work with his own sources. Or more likely he will checkout two or three projects:
    • his plugin
    • org.protege.editor.owl (not to change but for debug)
    • the owl api (not to change but for debug)

    In this configuration the plugin developer will only have to make one change to the Protege 4 distribution to use the most recently compiled version of his sources.

  • An eclipse developer will have access to a variety of plugin and OSGi tools which provide much validation and error checking.

Here are some of the advantages of one big project:

  • A developer is not dependent on any paticular Protege distribution and can easily checkout, build and use the latest versions of Protege from svn.
  • A developer can work on several plugins in the Protege distribution at the same time, can easily check in and out any changes to all of these multiple projects in concert and can get updates from other developers. For the main part this advantage mostly applies to the core Protege developement team.