Hello Eric if scope is runtime you can specify banned dependencies implementing the maven-enforcer-plugin as seen here <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <id>enforce-banned-scopes</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <!-- Exclude httpclient, and Pack200 in runtime scope --> <exclude>org.apache.httpcomponents.client5:httpclient*:*:runtime</exclude> <exclude>java.util.jar:Pack200:*:*:runtime</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> </executions> </plugin>
Will this work for op? Martin ________________________________ From: Milles, Eric (TR Technology) via dev <[email protected]> Sent: Monday, August 3, 2026 12:49 PM To: [email protected] <[email protected]> Cc: Milles, Eric (TR Technology) <[email protected]> Subject: Re: Any idea why Ivy only publishes a POM and not an ivy.xml? In your ivy xml, you would have something like this: <dependency org="org.apache.ivy" name="ivy" conf="your_conf->core(master),httpclient(optional)"> <exclude org="org.apache.commons" module="commons-compress" /> <!-- other excludes for "vfs", etc. --> </dependency> The maven scope mapping does not provide a separate name to use for "httpclient" and "pack200" groups. But you can remove the extras. It might be easier to add the org.apache.httpcomponents:httpclient dependency instead of excluding all others. Yes, if the ivy.xml was published you could do this more directly. ________________________________ From: Stefan Bodewig <[email protected]> Sent: Monday, August 3, 2026 11:23 AM To: [email protected] <[email protected]> Subject: Re: Any idea why Ivy only publishes a POM and not an ivy.xml? On 2026-08-03, Milles, Eric (TR Technology) via dev wrote: > As a consumer, you can provide fallback. For example > conf="optional(runtime)". I don't believe this does what I want. Ivy has this in its dependency section <dependency On 2026-08-03, Milles, Eric (TR Technology) via dev wrote: > As a consumer, you can provide fallback. For example > conf="optional(runtime)". I don't believe this does what I want. Ivy has this in its dependency section <dependency org="org.apache.httpcomponents" name="httpclient" rev="${httpclient.version}" conf="default,httpclient->runtime,master"/> <dependency org="org.apache.commons" name="commons-compress" rev="${commons-compress.version}" conf="default,pack200->default,optional"> <exclude org="com.github.luben"/> <exclude org="org.brotli"/> <exclude org="org.tukaani"/> </dependency> ... both httpclient and commoms-compress end up as optional in the Maven POM. As a project that depends on Ivy I only want to pull in the dependencies required to use httpclient but not pack200 as I know nothing is going to use pack200 (or vfs, or jsch or ...). With an Ivy file I can say default->httpclient . Can I achieve the same with a POM alone? Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
