In my internal Sonatype Nexus, on the routing tab of a repository (Codehaus Snapshots for example) is says
--- Publishing ---
| Status: Not published
| Message: Discovery in progress or unable to discover remote content (see discovery status).
I am able to Browse Remote, but unable to Browse Index.
What exactly is meant by the term "published"?
Is this repo not available to my maven clients? They use <mirrorOf>* and get all artifacts from Nexus.
This seems a brain dead question. I've looked here, and in the Sonatype book, online sonatype documentation, and scraped Google, to no avail.
This message means that the proxy's remote does not publish routing information, and that Nexus either wasn't able to crawl the remote's HTML directory listing, or is still in the process of doing so.
Have a look here for a description of how the routing feature works in Nexus:
https://support.sonatype.com/entries/30645946-How-does-Automatic-Routing-work-
Regarding search indexes, not all sites publish them. They are entirely optional, a lack of a search index will not impact artifact downloads through the proxy.
To see if the remote publishes search indexes add this path to the remote's URL and see if it can be downloaded:
.index/nexus-maven-repository-index.properties
Related
I have an instance of Artifactory OSS (latest version) running in a docker container locally.
We have a remote instance of Artifactory (non-OSS) running as well.
In my local instance, I set up a remote repository of package type Ivy pointing to each of the repositories we have set up in our remote non-OSS instance.
Once I have created a remote repository configuration, I can view each remote repository I created and its artifacts being served under the Application --> Artifactory --> Artifacts page HOWEVER under the Administration --> Repositories --> Repositories page where I am expecting to be able to make changes to the configurations (I have logged in as Admin with administrator privileges btw), none of the repositories I set up are actually visible here! I only see a 0 Repositories count and a No remote repositories message where I am expecting to see a list.
When I do Ivy resolves against my local (remote repository) it works as expected, so they're definitely working... just not showing up for administration.
I have tried rolling back to earlier versions of Artifactory OSS but that hasn't changed anything.
I can tediously work around this with a combination of the REST API and the UI but I REALLY JUST want to be able to administer the configurations within the web app... Am I just being dumb about something or is there a known issue regarding this? I have searched around and I haven't found an answer to this issue, so any help or direction would be greatly appreciated! Thanks!
I was able to reproduce it on my end on as well on version 7.19.1, seems this issue happens when working with Ivy on Artifactory OSS.
I have opened a bug for this on JFrog Jira.
I'm setting up a new atrifactory installation for the first time in my life. Downloaded the tar and extraceted it ok. Got some firewall rules in place to allow https to jcenter.bintray.com. After an initial refresh I see loads of artifacts in the com tree that must come from jcenter, so all seems fine, but when I preform simple maven tasks like mvn help:active-profiles I only get warnings and errors that indicate that none of the relevant stuff is available from my artifactory.
I have accessed the firewall logs and I found no outgoing traffic from my artifactory server to anything that's not permitted. What have I missed? My artifactory is OSS version 7.5.7 rev 705070900.
Artifactory remote repositories are not working as a mirror or the external repository they are pointing at.
Remote Artifactory repositories are proxying the external repository, which means that you have to actively request for artifacts. When requesting for an artifact, Artifactory will request it from the external repository and cache it inside Artifactory. Farther requests for a cached artifact will be served from Artifactory without the need to go out to the external repository.
The list of artifacts we are seeing, are ones which are available in the external repository. This is a feature is called remote browsing and available for some of the package types supported by Artifactory.
I found the issue, sort of. For reasons I now understand I have plugin repositories. I added the true source for the plugins to my list of plugin repositories, and that solved the issue for me.
Our setup includes a company wide Artifactory that holds in-house-built artifacts as well as goes out and fetches publicly available artifacts. I’m trying to setup a local Artifactory at our location that would fetch publicly available artifacts through the regular internet, but would connect to the company wide Artifactory for our in-house-built artifacts. Is this possible?
In my local Artifactory setup, I put the company wide Artifactory URL as a Remote Repository. I can hit the Test button and it tells me that it successfully connected. However, when I go to download an artifact it does not work. I would like to say that publicly available artifacts can be fetched through my local Artifactory, so at least I can get to jcenter.bintray.
Can one Artifactory be connected to another Artifactory? If yes, is there a way to test if this connection works
I don’t think we would be using all the contents of the company wide Artifactory, so I don’t want to do an export and import to the local or do replication. I would prefer if we could fetch on demand. Is this possible?
Edit: Thanks to #DarthFennec pointing me to Smart Remote Repositories I have solved my problem. To others who have the same problem
Please follow the steps mentioned on the previously mentioned page to set up the Smart Remote Repository. In my case Artifactory did not detect that the remote was another instance of Artifactory and did not give me any options to set, but I was not interested in these anyway.
Note You can always click the Test button to make sure that your connection to the Remote Repository works.
Next, go to the Admin -> Virtual Repositories select your Repository Key and select your Smart Repository from the Available Repositories so that it moves into the Selected Repositories. Click Save & Finish at the bottom and you should be good to go.
I'm not sure exactly what your problem ended up being, but if you want to remote one Artifactory repository from another, it should be a smart remote repository. This is when Artifactory detects that a remote is pointing at another Artifactory, and it enables a number of extra features, like download statistics, property replication, and remote browsing.
An important thing to keep in mind when configuring a smart remote repository is that depending on the package type, you might need to point the remote at <artifactory>/api/<type>/<repo>, rather than just <artifactory>/<repo>. This is the case for Bower, Chef, CocoaPods, Docker, Go, NuGet, Npm, Php Composer, Puppet, Pypi, RubyGems, and Vagrant repositories. Other repository types should use the standard <artifactory>/<repo> URL.
We have a Nexus OSS instance set up to host one repo and proxy several others, so the Maven settings.xml is then set up with our instance to be *. This works for most artifacts but one repo fails all of the time.
The failing repo is a snapshot one in another proprietory one within the company and I've set it up as a proxy repo (with snapshots allowed), added this proxy to the main Group and pointed Maven towards http://servername:8081/nexus/content/groups/public/. Maven now fails when it asks for the artifact (and also for the metadata) and indeed browsing to the location it mentions shows that it does not exist. Interestingly, the directory of the SNAPSHOT shows as existing, with only metadata and no artifact or POM, but even the link to maven-metadata.xml fails with a 404.
When I use the group's "Browse Index" tab in the GUI I see the artifact, with a repo path of http://servername:8081/nexus/service/local/repositories/public/content/<groupId/artifactId-with-version> (Not Cached) and this fails too. The remote repository does contain it though!
Actually, going to the proxy in the GUI I can download the artifact from servername:8081/nexus/service/local/repositories/<snapshot-repo>/content/<groupId/artifactId-with-version>. So it feels like maybe a problem with the Group but I can't see any options that I can change to affect this, nor anything in the logs to indicate what's happening.
Although I've seen a couple of similar questions here already, I couldn't see any solution suggested. I'm happy to be proved wrong!
See this article for troubleshooting tips: https://support.sonatype.com/entries/21437881-Troubleshooting-Artifact-Download-Failures
In particular, the ?describe diagnostic URL mentioned at the bottom of the article will help you figure this out.
I am running Nexus 2.3.1-01. I define a proxy repository that proxies snapshots from an upstream nexus instance. When I browse the remote repository associated with this proxy, I can see the snapshot artifact of interest. However, when I search for all versions of this artifact in the Nexus admin web ui, older versions of the snapshot artifact appear, but not the more recent versions of interest. Yet those more recent versions are clearly visible when I browse the remote.
I've struggled with this for a few hours, and have tried expiring the proxy cache, rebuilding the index, and repairing the index. This is a fresh installation of Nexus, so a damaged index seems unlikely.
Might someone provide some guidance on what I can try next? I should add that my mvn clients cannot resolve the snapshot dependency of interest either.
I figured it out. My mistake, of course.
The POM my test project was using did not have a clause in it pointing to an appropriate repository. The only hint of a repository was in my settings.xml file, and that repository was in a clause, which I want, but which is not sufficient.
What was the final hint? When I dumped the effective POM (mvn help:effective-pom), I saw the only repository configured was Maven Central. And snapshots were disabled. I (actually a coworker) realized that this single repository could not bootstrap the ability to resolve snapshots.
So I added a repository clause to my POM, enabled snapshots on it, and now everything, releases and snapshots resolve fine. Of course, the repository has to be setup to hand back releases and snapshots, but I already that part of my Nexus config right.