On Wednesday, 6 February 2013, Joachim Durchholz wrote:

> Am 06.02.2013 19:57, schrieb Stephen Connolly:
>
>> See in-line
>>
>> On Wednesday, 6 February 2013, Joachim Durchholz wrote:
>>
>>  Am 06.02.2013 17:47, schrieb Manfred Moser:
>>>
>>>  I dont think there is a real MRM type of functionality in M2e ... kind
>>>> of
>>>> doesnt make sense to me either. A MRM is a server software while M2e is
>>>> a
>>>> development environment.
>>>>
>>>>
>>> m2e installs its own repository inside .metadata.
>>>
>>
>> Smells like a second local *cache* (one of the most confusing things is
>> that we called it a "local repository" and not a "local cache"
>>
>
> It's where things land if you run a launch configuration that says "mvn
> install".


Then it is eclipse's local cache. Plain and simple.


> My current mental model of m2e's working is that it uses a normal Maven
> runtime, accessing ~/.m2 as a local cache like Maven normally does, and the
> repository inside .metadata is a normal repository.


Nope. Wrong on at least one and probably two counts.

1. Eclipse uses the maven embedder, this is not the same as a maven cli
install. It should build the same as *the soon to be released* 3.0.5 or
3.1.0 depending on when it was cut.

2. I haven't checked the exact code, but I think Benjamin is implementing a
"layered" cache, so if the artifact is in ~/.m2/repository then eclipse
will just copy that into its cache (assuming the [dreads the
misunderstanding *again*] source matches].

One of the subdirectories is even named "nexus", so I suspect (but couldn't
> verify) that m2e uses Nexus code.


Really melting like the more advanced local cache layout that Benjamin was
working on before (the board did a thing that they poorly apologised for
which has resulted in) Benjamin stopped committing to maven.


>  Given that the local *cache* is not concurrent safe, the sensible thing
>> for
>> eclipse to do (in order to co-exist with the cli) is to maintain its own
>> local cache
>>
>
> I'm seeing artifacts from Eclipse inside it that I never touched from the
> command line.
> I once blew the cache away and haven't run a single mvn command in the
> shell, but the cache did indeed refill.
>
> So I'm pretty sure that even while the cache isn't thread-safe, I guess
> Eclipse is simply using it anyway.


Benjamin's newer local cache implementations have thread safety... When
Aether eventually gets an official release from Eclipse, we should be able
to pick them up.. Or write our own if they don't suit.


>
> On a dev tangent: It's somewhat unnerving to read that the cache isn't
> thread-safe. Some people routinely do multiprocessing from the command
> line, what if multiple tasks happen to execute a mvn command at the same
> time? At least some locking would be in order, methinks.


Known issue, solutions are a available-ish... Just need an official release
of Aether from Eclipse IIRC


>
>  The issue I'm having is that I can't manage that repository.
>>>
>>
>> Because it's a cache but a repository (might look like a repository, but
>> aether treats it differently)
>>
>
> Probably not a cache.
> At least I think so. Is there a way to tell by inspecting the directories?
> (It would be nice if there were.)


Metadata files with local in the name are a dead giveaway, but given the
reworked local cache store that the version if aether used by m2e is using
I cannot say that the absence if such is evidence that it is not a local
cache


>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

Reply via email to