We’ve just finished updating some systems which support module developers. One of those systems is our maven artifact repository, which now has full https support. Unfortunately, the upgrades mean you will need to update your repository settings to use the new urls, otherwise you won’t be able to resolve your Ignition SDK dependencies after we complete the shutdown of the old servers.
Luckily, the fix is simple – All you need to do is simply change your pom.xml and replace the entries in the <repository> urls, so that http://nexus.inductiveautomation.com:8081/content/repositories/<repo name>
I ran into the same issue and Kevin’s suggested fix worked for me (using 7.9.4 instead of 7.9.4-SNAPSHOT).
I am wondering about your release cycle for the SDK though, as Ignition 7.9.5 is available for download and yet the nexus repository only has up to version 7.9.4 for the SDK. Do the SDK versions tend to trail product release? I would have expected it to be the other way around to give module developers some lead time, or at least up to date when a new release goes up for download.
They currently trail because there’s almost never a need to update your deps to the new minor version immediately. We very rarely change or add new interfaces in a point release, and you’re otherwise just programming against the interfaces in the SDK so it shouldn’t matter what minor version you’re pointing at.
Or with a bit of wrangling, what major version. Three of my four published modules load into v7.7.8, v7.8.3+, and v7.9.x. There a few spots where method names changed and related issues popped up, but introspection allowed dynamic solutions to almost all of them.
Did something change with the repository settings between yesterday and today? Pulling the dependencies has been working for me until today. Now I am seeing an “Unauthorized” error:
If I put the URL for that pom into my web browser, sure enough an “Authentication Required” window pops up, which I had not seen in the past. I am not sure what kind of credentials it is looking for. I tried my IA/forum credentials but to no avail.
I’ve made changes to the pom file and when I try to build my project, I get the following error:
Failed to collect dependencies at com.inductiveautomation.ignitionsdk:driver-api:pom:7.9.0: Failed to read artifact descriptor for com.inductiveautomation.ignitionsdk:driver-api:pom:7.9.0: Could not transfer artifact com.inductiveautomation.ignitionsdk:driver-api:pom:7.9.0 from/to releases (https://nexus.inductiveautomation.com/repository/inductiveautomation-releases): Not authorized , ReasonPhrase:Unauthorized.
Any insight into this would be much appreciated, thank you.
I’m no longer having any issues accessing the repo, but will some of the older dependencies be replaced? When I try to build my project now, I’m running into the following error message:
My SDK dependencies are all set to be release versions, and most up to date version of the node before my artifact still points to org.eclipse.milo. As always, any help would be appreciated.
Just as an update - we’ve found the cause of the Failed to collect dependencies..., and are working on implementing the necessary configuration to stop those ‘errors’ (quoted as the errors aren’t in fact real errors, they are just poorly managed responses from server when attempting to search for a file that doesn’t belong in that repo).
Will update again once we’ve got the solution documented and confirmed.
Alright - it seems the solution is somewhat simple – you simply need to add some information to your repository settings to avoid trying to resolve artifacts against the wrong repositories. This is due to a change in the response code that is returned when a repo is searched for the wrong version type (release vs snapshot). Maven is ok with getting a 404 response, but treats a 400 response as a loggable event, which does seem to cause problems in some tooling/IDE environments. I’ve updated our github examples with the additional configuration, but the summary is:
Repository Configuration
Releases – (meaning version is NOT a snapshot) should add <snapshot> entries which disable searching them for snapshots.
Snapshots – should have enabled <snapshot> and disabled <release> entries
Thirdparty – should have the same configuration as Releases
Here is a full copy/paste of the configurations of one of the example modules.