 ------
 Project Dependencies
 ------
 ------
 26 Feb 2009
 ------

Project Dependencies

  This section provides instructions on adding system installed artifacts as references to the project.
  
  When adding artifact reference that is not installed in the system, NPanday will prompt a warning
  message then adds the reference in the <<<pom.xml>>> as a system scope dependency.

[../images/dependency_error.jpg] Reference not installed in the system

  However, the above warning message is not displayed for web site projects even if the artifact reference to be added
  is not installed in the system. This is because the artifact references for web projects are directly added in the project's
  <<<bin\\>>> directory (one is created when this is missing), thus, no need to add it in the <<<pom.xml>>>.
  
  The following POM snippet shows a system dependency:
  
+------+
  <dependency>
    <groupId>artifact_group_id</groupId>
    <artifactId>my.lib</artifactId>
    <version>2.2</version>
    <type>library</type>
    <scope>system</scope>
    <systemPath>C:\path\to\your\library.dll</systemPath>
  </dependency>
+------+

  To add references to the project:
  
  [[1]] Right click on the project that you want to add a reference to.
  
  [[2]] Select Add Reference... from the menu list.
  
  [[3]] Select the tab to which the reference belongs (<<.Net>>, <<COM>>, <<Projects>>).
  
  Or, Browse to look for the specific artifact to be reference and Recent for artifacts recently accessed.
  
  [[4]] Select the references to be added from the list as shown in the figure above. Scroll to select the desired object reference.
  
  [[5]] Click OK.
  
  []

[../images/references_list.jpg] Sample display of list of references

  When adding a COM reference, the actual reference (DLL) is copied to <<<C:\\WINDOWS\\assembly\\GAC_MSIL>>>.
  Wherein, the path to the reference found in this directory is used as the reference's <<< \<systemPath\> >>> in the <<<pom.xml>>>.
  
