Skip to content

Own Universe Definitions

Beat Strasser edited this page Jun 1, 2015 · 7 revisions

The notion of a universe is used to define the set of projects considered for dependency updates. By default, there is the 'workspace universe' which contains all projects currently in the Eclipse workspace. You can define own universes by creating an xml file listing them and adding this xml file in the settings as new universe.

Project universe definition file format

The project universe definition file format is an xml format containing a projectuniverse parent node holding a number of project nodes. It exhaustively describes a universe. Use the projectRoot node to add all Maven projects inside the given folder (Version Tiger will recursively search for folders). Use ignoreProject to remove a project from the universe and ignorePath to remove an entire path (helpful in combination with projectRoot). See the following example of such a project universe definition file:

<projectuniverse name="My Project Universe">
    <projectRoot location="/home/me/workspace/" />
    <ignoreProject id="test.plugin" />
    <ignorePath location="/home/me/workspace/obsolete" />
    <project location="/home/me/workspace2/com.inventage.project.plugin1" />
    <project location="/home/me/workspace2/com.inventage.project.plugin2" />
</projectuniverse>

Store this information as xml file, e.g. myProjectUniverseDefinition.xml.

Adding new universes via preferences

To make your self-defined universe available to the tool, you need to provide its location as a preference. Open the Eclipse Preferences ('Window -> Preferences'), search for the 'Version Tiger -> Universe definition' list entry, and add your xml file with the 'Add...' button. For the file being accepted, all locations need to point to valid directories.

Using Eclipse workspace variables

You may use the known Eclipse workspace path variables in the universe definition XML file including:

  • ECLIPSE_HOME
  • PARENT_LOC
  • PROJECT_LOC
  • WORKSPACE_LOC

Use them enclosed in the ususal variable delimiters ${var} for a given variable 'var'. For example, the above file looks as follows having the paths set relative to the workspace:

<projectuniverse name="My Project Universe">
    <projectRoot location="${workspace_loc}/project" />
    <ignorePath location="${workspace_loc}/project/target" />
    <project location="${workspace_loc}/com.inventage.project.plugin1" />
    <project location="${workspace_loc}/com.inventage.project.plugin2" />
</projectuniverse>

Find more information in the respective Eclipse information page: Eclipse documentation; Path variables.