Knowledge Matrix - Define and use a server of module references

Unofficial Content
This documentation is valid for:

A server of module references is a repository manager of shared modules. It is also called GeneXus Knowledge Matrix, for its feature of storing assets with knowledge, and will be referred so, or simply as Matrix, in this documentation.

This article shows how to create or define a Matrix, publish assets (modules) on it, catalog it in GeneXus, and install those assets in your KB

Features of a Matrix

A Matrix, as a repository manager, stores assets, handles versioning of those assets, and also dependency management among versions of different assets.

It holds those assets with the purpose of sharing them among GeneXus users, that is, members of a project's team, a company, an ecosystem, a region in the world or even sharing those assets globally to the whole GeneXus community.

image_202062292617_1_png

Create or define your Matrix (for sharing assets in-company)

You can use Nexus Repository OSS as a repository manager for this.

Follow these steps

1) Install Nexus OSS

The main options to install Nexus are:

2) Once installed, create a maven hosted repository. You can also use the already built-in 'maven-releases' repository.

image_20206229559_1_png

3) Configure your Nexus to allow anonymous access for browsing and downloading assets.

Prepare your GeneXus installation to publish assets

1) Download Maven and install it. 

2) Define credentials for Publishing

You need the credentials of a user who has permission to publish on the Matrix.

Create or modify the following file: %USERPROFILE%\.m2\settings.xml. The credentials defined in that file will be used when you publish your modules on that Matrix.

<settings>
   <servers>
     <server>
       <id>Example Matrix</id>
       <username>Me</username>
       <password>MyPassword</password>
    </ server>
  </ servers>
</ settings>

3) Define a new server of module references in GeneXus as explained in the upcoming section.

Define a Matrix in GeneXus to install assets

For that, go to the GeneXus Menu > Knowledge Manager> Manage Module References, Then with the mouse do a right-click and select the option 'Add'

  • Select Nexus in the Server Type
  • Choose a name for your server (ie: Example Matrix). Note that it has to be the same name you identified in the settings.xml in the previous section.
  • Choose the repository URL. (ie: http://mymatrix.mycompany.com/repository/maven_releases/)

image_202062294618_1_png

Publish a module to the Matrix

  • Make sure that the module is in the local module repository. (Go to GeneXus Menu > Knowledge Manager > Manage Module References > Select the server: Local)
  • Select the module to publish in the Matrix
  • Select in the combo box that appears to the right of the Publish button and select 'Example Matrix'
  • Press Publish

image_202062294855_1_png

Now GeneXus calls Maven to proceed to Deploy the module to the Matrix 'Example Matrix'! 

If the process finishes successfully, then select 'Example Matrix' and you will see your asset there on 'Example Matrix', ready to be installed.

Install assets of a Matrix

Refer to Manage Module References for more information related to installing and managing packaged modules.

Public GeneXus Matrixes

As of June 2020, there is a GeneXus Global Matrix in alpha state. Its purpose is to be a repository for modules shared all over the world to the whole GeneXus community. You still can't publish modules on that Matrix, but if you want to share it, get prepared, package your module, and share them with your teammates through your own Matrix.

Troubleshooting

When Publishing, Maven gives an error 401

Probably because the settings.xml file that indicates the key is not correct. Make sure that with that user and password you can log in on Nexus.

When Publishing, Maven gives an error 405

Probably this is due to the fact that when configuring the Server Source the full URL of a Nexus repository was not set.