Hi,

please check what You have in .m2/repository/org/dom4j/dom4j/2.1.3  in file
_remote.repositories
There will be references to the repo from where this artifact has been
downloaded.

BR
Sylwester

pon., 6 lis 2023 o 16:57 Tamás Cservenák <ta...@cservenak.net> napisał(a):

> Howdy,
>
> Well, let me step back for a moment:
> Maven2 did ignore "origin" and it caused various problems that were very
> hard to diagnose.
> Hence, Maven3 (from start, or almost, but very early) did implement the
> "enhanced" local repository, that does track origin.
>
> In short, these kinds of errors means that your build depends on something
> not described in build (so side effect).
>
> Best way to diagnose these: nuke local repository (as it should be
> considered transient anyway), and a "good build" will just get whatever it
> needs.
> Otherwise, the build will fail as well, but with a different error:
> "artifact X not found".
>
> With use of repository groups (virtual repo) this became more and more
> apparent: Imagine this, you have two groups:
>
> group-a (consisting of central, remote-repo-a)
> group-b (consisting of central, remote-repo-b)
>
> Here, if you start a build w/ settings "by the book" (having mirrorOf
> group-a) and empty local repo, it will populate your local repo and all
> cached artifacts will have the origin = "group-a".
> Then, if you start another build w/ settings "by the book" using group-b,
> Maven will go and recheck all, as "group-a" origin is != as "group-b"
> origin (so yes, all the central artifacts as well, everything).
>
> Hence, in these scenarios is best to differentiate local repositories as
> well (just like you differentiate groups).
>
> Also, if no origin check, an artifact coming from remote-repo-a, that is
> totally out of sight in build consuming group-b could be picked up, causing
> strange, and very hard to diagnose problems (it fails here but passes
> there? It is a build that depends on the environment, and how is the used
> local repo populated).
>
> So, ideally in these cases just use _other_ local repository, ideally 1:1,
> each build consuming given group should have "own" local repository as
> well.
>
> I cannot emphasize enough, how in these cases usually "nuking local repo"
> just makes the issues pop out, and render builds fail, and it is a clear
> indicator that the build has issues that need to be fixed.
>
> Again, you can "trick" Maven to use these "unavailable" artifacts, but it
> is in your own interest to fix the actual build issues you have.
>
> On Mon, Nov 6, 2023 at 4:31 PM Francois Marot <francois.ma...@gmail.com>
> wrote:
>
> > Hello Arno and Tamas
> >
> > and thank you for the detailed and very interesting explanation.
> > One question arises though: is there any way to make Maven ignore the
> > origin ?
> >
> > Have a good day
> > François
> >
> >
> > Le lun. 6 nov. 2023 à 13:20, Tamás Cservenák <ta...@cservenak.net> a
> > écrit :
> >
> > > Howdy,
> > >
> > > The Maven local repository contains two kinds of artifacts lumped
> > together:
> > > - cached ones from remote
> > > - locally built and installed
> > >
> > > This message matters the cached ones: "present but unavailable" means
> > > following:
> > > - file IS present (so it was cached)
> > > - but is unavailable, as it was cached as part of some OTHER remote
> > > repository than that exists in current execution
> > >
> > > Maven3 uses this implementation of local repository
> > >
> > >
> >
> https://maven.apache.org/resolver/apidocs/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.html
> > >
> > > And check out the javadoc it: it tracks the "origin" (basically remote
> > > repository ID) of cached artifacts, and "emulates" physically separated
> > > caches (same can be achieved "for real" with split local repository).
> > >
> > > In short: the repository ID that was stored as artifact origin is NOT
> > > available in your subsequent build, hence, Maven3 does not use it (is
> > > unavailable, but present physically in cache/local repository).
> > >
> > > HTH
> > > T
> > >
> > > On Mon, Nov 6, 2023 at 1:10 PM Arno Schatz <a...@xerai.biz> wrote:
> > >
> > > > Hi,
> > > >
> > > > I am trying to use the offline mode (mvn -o clean install) and
> getting
> > > the
> > > > error message
> > > > "The following artifacts could not be resolved:
> > org.dom4j:dom4j:jar:2.1.3
> > > > (present, but unavailable)"
> > > > for very many dependencies.
> > > >
> > > > My main computer and a VM share the same file system. The VM is
> > connected
> > > > to the company's repository (artefactory)
> > > > through VPN. On the VM, I checkout the project and successfully build
> > it
> > > > and successfully ran "mvn dependency:go-offline".
> > > >
> > > > The I switched to my main computer and tried "mvn -o clean install"
> but
> > > it
> > > > failed with the above error message. I also
> > > > tried to set
> > > >   <offline>true</offline>
> > > > in settings.xml in my main computer but that didnt change anything.
> > > > What does the "(present, but unavailable)" in the error message mean?
> > > >
> > > > thanks,
> > > >     Arno
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> > > > For additional commands, e-mail: users-h...@maven.apache.org
> > > >
> > > >
> > >
> >
>

Reply via email to