thinking more about it.
Yes, having Maven core depending on maven-project-utils, which dependes on maven-core, will cause issues: I already had to add an exclusion to avoid a
build tests failure...

Where to put AnsiUtils?
I see multiple options:
- a new Maven core module: the drawback I see is that it will be a really
small artifact...

A separate module or part of an existing module? This would mean that plugins would require a newer version of maven dependencies just for logging. This doesn't seem to be correct.

- move code to maven-plugin-api: it would be consistent. The drawback here is
that we'll need to shade it into plugins to avoid Maven 3.4.0 requirement

Nope, see previous comment. Plugins should compile with lowest maven dependencies.

- move code to maven-shared-utils: the drawback here is to add jansi
dependency to the artifact.

That would pull in maven-shared-utils next to plexus-utils, which are comparable and shouldn't be mixed due to classloading issues as seen in the past.


Any preference? Any other idea?

So it seems like it should be a very small standalone module. It should also pick up jansi from the classpath, jansi shouldn't be a direct dependency, but a provided or optional one.

that's the approach I would go for.

Robert


Regards,

Hervé

Le mardi 21 juin 2016 08:33:48 Hervé BOUTEMY a écrit :
Le lundi 20 juin 2016 20:33:26 Christian Schulte a écrit :
> Am 06/20/16 um 19:15 schrieb Robert Scholte:
> > Hi Christian,
> >
> > when I introduced the maven-project-utils I had a library in mind with
> > helpful MavenProject related methods for multiple plugins. For that
> > reason
> > I didn't make it part of the Maven distribution.
> > With this commit the library suddenly is required.
> > Instead I think you should use plain JAnsi or we should extract the
> > logging part from the library.
>
> Hervé committed this and is currently working on it.

yes, I'm the culprit here :)

> Colours disappeard
> on current 'master' here.

same for me
the code that checks for Maven version before activating colors does not
work when run in Maven core...
I just activated color explicitely in Maven core, but since this code will also be responsible for custom colors injection (later, I still didn't have
time to implement it), I don't think this will be the right answer

> I am not sure using plain JAnsi is the way to
> go. I would prefer having some kind of facade people can use which
> allows us to replace JAnsi without the need to touch any code.

replacing JAnsi probably won't happen
But this API is responsible for consistent and configable colors

> Currently
> JAnsi still is on the compile classpath. That's like using classes of
> some 'com.sun' package. We have no compiler warning people about direct
> use of JAnsi. So it better disappears from any compile classpath to be
> safe. Allowing direct use of JAnsi we also run into that 'everyone uses
> colours in an inconsistent way' - like someone else already said - we
> will get that rainbow console effect sometime in the future (when people
> start providing colours in theire plugins).

this is where Java 9 modules would help...
For the moment, I don't think hiding JAnsi is a priority: explaining the
Maven color logging messages API is more important.

> The API Hervé is working on
> looks promising. Maybe we make that a class in 'maven-core' instead of a > part of some library. Plugins already add 'maven-core' to theire compile
> classpath.

if we do that, doing plugins working on every Maven version will require
reflection: that's hard

> That could pull in some kind of Ansi Logging helper class as
> well. No need for a separate library, I think.

If using maven-project-utils in core is not ok, yes, we'll need a separate
library

Regards,

Hervé

> Regards,

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


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

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

Reply via email to