7.7. Configuring Deployment to a Remote Nexus Repository
Nexus is a repository manager frequently used in organizations to centralize storage and management of software development artifacts. It is possible to configure your project so that artifacts produced by every build are automatically deployed to a repository on a remote Nexus server.
To configure your project to deploy artifacts to a remote Nexus repository, add a distributionManagement
element to your project’s pom.xml
file as demonstrated in the code example below.
<distributionManagement> <repository> <id>deployment</id> <name>Internal Releases</name> <url>http://your_nexus_host:8081/nexus/content/repositories/releases</url> </repository> <snapshotRepository> <id>deployment</id> <name>Internal Releases</name> <url>http://your_nexus_host:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
Replace the URLs in the example with real URLs of your Nexus repositories. The repository specified in the snapshotRepository
element is used when the -SNAPSHOT
qualifier is appended to the project’s current version number. In other cases the repository specified in the repository
element is used.
If your Nexus server requires authentication, you will also need to modify your projects Maven settings to add your credentials in the settings-security.xml
file, using a master password. By default, this file is in the $M2_HOME/conf
folder, unless you have changed its location by modifying the kie.maven.settings.custom
system property. It is also possible to create new user-specific settings.xml
and settings-security.xml
files in the ~/.m2
folder. In that case, these files will override the original ones.
See the following example of the settings-security.xml
:
<servers> <server> <id>deployment</id> <username>admin</username> <password>{COQLCE6DU6GtcS5P=}</password> </server> </servers>
Note that keeping your server authentication credentials (for example the passwords) as a plain text in the settings.xml
file is not recommended. All the information should be hashed with a master password in the settings-security.xml
file.
For further information about password encryption and creating a master password, see the Apache Maven documentation, article Password Encryption.
With this configuration in place, clicking the Build & Deploy button in Business Central executes a Maven build and deploys the built artifacts both to the local repository and to one of the Nexus repositories specified in the pom.xml
file.