-
-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mvnix-update creates multiple erroneous entries after hitting 404 pages #41
Comments
After digging a little deeper, it looks like these might be exclusively from the license4j server. The remote for license4j is not defined in However, adding it to the remotes specified in License4J error[WARNING] Checksum validation failed, expected <!DOCTYPE but is 3a08b17598cc540c37049370768c2d42c88ece7e from license4j-runtime-library for http://www.license4j.com/maven/javax/annotation/javax.annotation-api/1.2/javax.annotation-api 1.2.pom
|
Okay, so I've been going in and out of working configurations, trying to stabilize/find the right setup. What I have found is that, during I've been able to find some working settings, but haven't been committing my default.nix and etc, so I'm currently trying to find the working |
This seems to be a combination of misconfigured remotes/repos, and jq being given bad JSON (something like jqlang/jq#1049 (comment), perhaps). In failing to resolve various artifacts, The various sed calls in It seems like we either need to escape the resulting HTML properly, or fail gracefully with a more helpful error message, potentially denoting the user's configuration might not be correct. Escaping the resulting HTML might not be the best solution, as we won't be able to do anything with it, anyway... We could also provide a way to exit or fail faster, possibly before the sanity check phase, as soon as all the dependencies have been "resolved". |
This seemed to solve the issue in my case:
Contents of
|
(quote edited for brevity) How should the We use a Looking at a project that includes some remotes in its pom, it appears that the remote URLs go straight through and end up in the dependencies' derivations. So there is no mirror URL substitution at that level. If all of those remotes were well behaved, then the build would succeed. As is, the project build fails from mismatched hashes in the dependencies. mavenix-update fetches the correct hashes for each dep, but the builder for the dependency derivations attempts to fetch from the (remote repo) URLs in order, and a specific remote near the front of the list returns bogus content sometimes. It seems to return an HTTP 200 response and an XML document that says '404' (see OP). So the whole process fails due to hash mismatch. Does obtaining the correct hash for a jar/pom dependency rely on the failure tolerances in maven itself, or does it depend on routing through the mirror? If it is the second, should mavenix implement the same logic that maven uses? Go through the mirrors, matching remotes to |
I am currently trying to build a project with many dependencies using mavenix.
Note that several dependencies are either exclusive to repositories outside of maven central, while some are exclusive to our own internal nexus server.
Upon reaching the Sanity check, the following error is thrown:
The last line is a result of my own modification of
mavenix
The
mavenix.lock
file is typically thrown away, so I added a shim to help me debug this issue:Saving the
mavenix.lock
fileAfter removing the duplicate entries, the resulting
mavenix.lock
file seems to work fine.Here is an example duplicate entry
This is preceded by a proper entry for the artifact
One thing to note is that
<title>License4J - 404 Not Found</title>
seems to appear in every one of the duplicate entries undermetas
.The text was updated successfully, but these errors were encountered: