Search code examples
gitindexingnexusjdeveloper

JDeveloper 12 unable to index GIT Repo provided by Nexus Repository Manager 3


JDeveloper seems to have a compatibility issue with Sonartype Nexus Repository Manager (Version OSS 3.41.1-01).

I configured this index page as "Index Update URL":

https://myserver/service/rest/repository/browse/maven-releases/.index

This page is available ant it looks similar to the Maven Central index available here:

https://repo.maven.apache.org/maven2/.index

JDeveloper can handle the Maven Central index, but not the index generated by my Nexus Repository Manager.

If I click on Test Connection button, JDepeloper reports:

  • ❌ Failed connection to Index Update URL

enter image description here


Solution

  • The index page of the Nexus Repository Manager is only an HTML representation of the index.

    https://myserver/service/rest/repository/browse/maven-releases/.index

    JDeveloper doesn't analyses the HTML page, but just appends the URL with an expected filename. It works like this:

    https://myserver/service/rest/repository/browse/maven-releases/.index + /nexus-maven-repository-index.gz

    This result is wrong. The files references by the HTML page are located under another path. These are correct URLs:

    • https://myserver/repository/maven-releases/.index/nexus-maven-repository-index.gz
    • https://myserver/repository/maven-releases/.index/nexus-maven-repository-index.properties

    The SOLUTION is to enter the following URL as "Index Update URL" in the JDev Preferences:

    https://myserver/repository/maven-releases/.index
    

    This URL returns 404 if you access it directly. But it is not an issue. JDeveloper uses this URL just as a prefix to create the right one.


    Use the debug mode, if you want to see, what happens inside the JDeveloper:

    cd JDEV_HOME\jdeveloper\jdev\bin
    jdev -J-Djavax.net.debug=all 
    

    The command above prints the logs to the console. It is possible to redirect logging to file:

    jdev -J-Djavax.net.debug=all >jdeveloper.log