Skip to content

Add a syntax for excluding dependencies #5

Open
@ctrueden

Description

@ctrueden

Endpoints can consist of multiple concatenated artifacts on the classpath; e.g.: org.codehaus.groovy:groovy-groovysh:org.codehaus.groovy.tools.shell.Main+commons-cli:commons-cli:1.3.1. But currently there is no way to specify dependency exclusions—i.e., to subtract elements from the classpath. Maven supports this via <exclusions> blocks under a <dependency>, so we simply need to think of a good syntax for excluding artifacts. Unfortunately, the nicest operator, -, will not work because the dash is heavily used in GAVs.

One option would be, instead of considering these concatenations and exclusions as elements of the endpoint itself, to make them separate CLI arguments. I almost did that initially, but it makes for "dirty" endpoints: supposing you want to run the same GAV+main with multiple different classpath modifications, the environment caching needs to take those modifications into account anyway, so they may as well be considered part of the endpoint proper.

So, assuming we want to keep these modifications as part of the endpoint itself, we should just choose a different character which never appears in GAVs or Java class names. Maybe ! since it rather universally means "not".

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions