You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Simon Ochsenreither <si...@ochsenreither.de> on 2017/03/23 23:15:34 UTC

Implementing XDG base directory support

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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: Implementing XDG base directory support

Posted by Igor Fedorenko <ig...@ifedorenko.com>.
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: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org