maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <org.apache.maven.u...@io7m.com>
Subject Extracting classes from a separate project?
Date Tue, 01 Dec 2015 16:16:11 GMT
Hello.

I'm intending to use some classes from the fastutil package[0]. Due
to the size of the artifact(s), it's assumed that anyone using the
package will use ProGuard on their application to remove unneeded
classes. However:

1. I'm writing a library.
2. I'm using the fastutil classes in a way that does not expose them
   in the public API of the library.
3. I do not want everyone that uses my library to have to use something
   like ProGuard to reduce the resulting size increases caused by
   a dependency on fastutil.

Therefore, I feel like the correct way to proceed is to create
a module in my project that solely exists to extract a few classes
from fastutil an expose them to the other modules that need them.

One way to do this would be to use the maven-dependency-plugin to
extract sources from the fastutil package and treat them as "generated
sources" so that they're compiled and packaged as part of the artifact.

However! This would obviously then result in conflicts (duplicate
classes) if someone using my library also used the fastutil package.

It seems like the maven-shade-plugin is capable of moving classes
into different packages, but it seems as though it's only capable
of working with compiled classes and therefore may not play nicely
with IDEs.

Does anyone have a better/preferred way to achieve this?

M

[0] http://fastutil.di.unimi.it/

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


Mime
View raw message