Visit my.sonatype.com for documentation on Nexus Repository version 2.
This article applies to Nexus Repository 2 only.
Nexus Repository 2: In some configurations, there were problems uploading a Sonatype Nexus Repository 2 license file using the user interface.
If you find yourself in a similar situation, you should be able to upload your license file using a common command line utility called curl to bypass the UI entirely.
Option 1: Uploading a License file Using REST
Example uploading a license file to Sonatype Nexus Repository Professional:
> curl -v -F "file=@your-license-file.lic" -u admin:admin123 "http://localhost:8081/nexus/service/local/licensing" * About to connect() to localhost port 8081 (#0) * Trying ::1... * Adding handle: conn: 0x7f8ab2803000 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x7f8ab2803000) send_pipe: 1, recv_pipe: 0 * Connected to localhost (::1) port 8081 (#0) * Server auth using Basic with user 'admin' > POST /nexus/service/local/licensing/request.html HTTP/1.1 > Authorization: Basic YWRtaW46YWRtaW4xMjM= > User-Agent: curl/7.32.0 > Host: localhost:8081 > Accept: */* > Content-Length: 3269 > Expect: 100-continue > Content-Type: multipart/form-data; boundary=------------------------599c88cde3474225 > < HTTP/1.1 100 Continue < HTTP/1.1 201 Created < Date: Wed, 30 Oct 2013 13:12:32 GMT < Date: Wed, 30 Oct 2013 13:12:34 GMT * Server Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V8 is not blacklisted < Server: Noelios-Restlet-Engine/1.1.6-SONATYPE-5348-V8 < Content-Length: 0 < * Connection #0 to host localhost left intact
Option 2: Copying the license file into place
The Sonatype Nexus Repository license is stored in the Java user preferences store directory on Linux and Mac OSX. This solution will not work for Windows, as the license is stored in the Windows Registry there.
Once installed, on Linux the product license can be found in the home directory of the user running Nexus Repository at this location:
~/.java/.userPrefs/com/sonatype/nexus/professional/prefs.xml
So you can install the license through the UI on one host and then just copy that file over to a new host or different user account and you'll have an installed license for that user account.
Find and edit the file $NEXUS_HOME/bin/jsw/conf/wrapper.conf
Look for lines like this:
wrapper.java.additional.1=-XX:MaxPermSize=192m wrapper.java.additional.2=-Djava.net.preferIPv4Stack=true wrapper.java.additional.3=-Dcom.sun.jndi.ldap.connect.pool.protocol="plain ssl" wrapper.java.additional.3.stripquotes=TRUE
Add a new line below them like this:
wrapper.java.additional.4=-Djava.util.prefs.userRoot=<absolute-path-to-already-created-directory>
Be sure to set the sequence number (shown here as "4") to the next unused sequence number in the wrapper.java.additional list or it will not work.