Implementing XDG base directory support

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Implementing XDG base directory support

Simon Ochsenreither-2
Hi everyone,

I'm interested in improving Maven's compliance with the XDG spec that
defines standardized directories for different kinds of data stored by
applications.

Currently, Maven just dumps things into a .m2 folder in $HOME. This is
bad for all the obvious reasons.
I'd like to contribute to improve this situation while taking care to
not disrupt existing users.

From a superficial investigation, this requires changes to
org.apache.maven.repository.RepositorySystem,
org.apache.maven.cli.{MavenCli,
configuration.SystemXmlConfigurationProcessor},
org.apache.maven.settings.RuntimeInfo.java, as well as some other places
in the code base where paths have been hardcoded.
(Is there any reason why pretty much the same code is copied to so many
different places?)

I'd probably approach this by defining an enum PlatformPaths with
"DEFAULT" (the current behavior, or the behavior chosen when no other
behavior can be applied) and "LINUX" (following the XDG spec).
Definitions for other platforms (Windows, MacOS) could then be added by
defining additional enums.

Any thoughts?

Thanks!

Cheers,

Simon

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Implementing XDG base directory support

Igor Fedorenko-3
Can you explain "the obvious reasons"?

There are some fundamental problems with current maven local repository
approach, but this is the first time I hear somebody complains about the
default location, so I'd like to understand better the problem(s) you
are trying to solve.

--
Regards,
Igor

On Thu, Mar 23, 2017, at 07:15 PM, Simon Ochsenreither wrote:

> Hi everyone,
>
> I'm interested in improving Maven's compliance with the XDG spec that
> defines standardized directories for different kinds of data stored by
> applications.
>
> Currently, Maven just dumps things into a .m2 folder in $HOME. This is
> bad for all the obvious reasons.
> I'd like to contribute to improve this situation while taking care to
> not disrupt existing users.
>
> From a superficial investigation, this requires changes to
> org.apache.maven.repository.RepositorySystem,
> org.apache.maven.cli.{MavenCli,
> configuration.SystemXmlConfigurationProcessor},
> org.apache.maven.settings.RuntimeInfo.java, as well as some other places
> in the code base where paths have been hardcoded.
> (Is there any reason why pretty much the same code is copied to so many
> different places?)
>
> I'd probably approach this by defining an enum PlatformPaths with
> "DEFAULT" (the current behavior, or the behavior chosen when no other
> behavior can be applied) and "LINUX" (following the XDG spec).
> Definitions for other platforms (Windows, MacOS) could then be added by
> defining additional enums.
>
> Any thoughts?
>
> Thanks!
>
> Cheers,
>
> Simon
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]