Another reason for suggesting common-compress split to several sub-modules:
I see no application, nor lib, nor software that use common-compress and
use all of the algorithms supported by common-compress...
Usually we just use one or two algorithms we actually need...
so splitting into several submodules (and letting users pick what they
need) seems reasonable...
If an all-in-one entry is really needed, we still have the SPI solution.

Xeno Amess <xenoam...@gmail.com> 于2024年2月23日周五 00:23写道:

> > What I've been going in some projects is to never use Maven optional
> dependencies and split Maven projects into multi-module ones and never use
> optional dependencies when I care about what depends on what.
>
> I love this... just like what done in vfs right?.
>
> Gary Gregory <garydgreg...@gmail.com> 于2024年2月23日周五 00:14写道:
>
>> A basic issue is that there is a disconnect between Maven dependency
>> declarations in a POM and running applications outside of Maven aware
>> environment ('mvn' and IDEs). When you write your app, you deliver jars,
>> you start the JVM, and so on, and if you don't follow Maven dependencies
>> you can run into issues like missing classes. Maven, within a module, has
>> no way to say "if you use this feature, then you need that jar".
>>
>> What I've been going in some projects is to never use Maven optional
>> dependencies and split Maven projects into multi-module ones and never use
>> optional dependencies when I care about what depends on what.
>>
>> The KISS solution here IMO is to remove the POM optional attribute from
>> these dependencies. Apps can always prune dependency if they wish to do
>> so.
>>
>> Gary
>>
>> On Thu, Feb 22, 2024, 4:08 AM Andrew Coates <big.andy.coa...@gmail.com>
>> wrote:
>>
>> > Hi all,
>> >
>> > I'm seeing a runtime failure using TarArchiveOutputStream when updating
>> to
>> > commons-compress 1.26.0.
>> >
>> > java.lang.NoClassDefFoundError: org/apache/commons/codec/Charsets
>> >         at org.apache.commons.compress@1.26.0
>> >
>> >
>> /org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.<init>(TarArchiveOutputStream.java:212)
>> >         at org.apache.commons.compress@1.26.0
>> >
>> >
>> /org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.<init>(TarArchiveOutputStream.java:157)
>> >         at org.apache.commons.compress@1.26.0
>> >
>> >
>> /org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.<init>(TarArchiveOutputStream.java:147)
>> >         at testcontainers@1.19.5
>> >
>> >
>> /org.testcontainers.containers.ContainerState.copyFileToContainer(ContainerState.java:350)
>> >         ...
>> >
>> > Commons-compress 1.26.0 contains changes to make use of commons-codec,
>> > rather than its own copy of files, but I see that the POM marks
>> > commons-codec as *optional*. Excuse my potential ignorance, but I
>> thought
>> > optional dependencies shouldn't cause runtime failures if not present.
>> Is
>> > this not the case?
>> >
>> > Obviously, I can just add commons-codec as an explicit dependency. But
>> this
>> > seems wrong IMHO.
>> >
>> > Should I sign up for an account and raise this as a bug in Jira?
>> >
>> > Thanks,
>> >
>> > Andy
>> >
>>
>

Reply via email to