Maven mvn依赖项:脱机-如何在命令行上设置参数或根本不设置参数

Maven mvn依赖项:脱机-如何在命令行上设置参数或根本不设置参数,maven,maven-dependency-plugin,Maven,Maven Dependency Plugin,我想下载除我自己的依赖项以外的所有内容,我还没有编译这些依赖项。我想我需要的是excludeGroupIds,但是我如何设置它,或者在命令行中设置其他内容 我试过这个 mvn dependency:go-offline -DexcludeGroupIds=com.example 我也试着在pom.xml和settings.xml中设置它们,但没能使它们产生任何效果。通过检查maven依赖插件的代码,我很确定这是一个bug,从某种意义上说,过滤器不适用于离线。以下是解析(版本3.1.3-SNAP

我想下载除我自己的依赖项以外的所有内容,我还没有编译这些依赖项。我想我需要的是
excludeGroupIds
,但是我如何设置它,或者在命令行中设置其他内容

我试过这个

mvn dependency:go-offline -DexcludeGroupIds=com.example

我也试着在
pom.xml
settings.xml
中设置它们,但没能使它们产生任何效果。

通过检查maven依赖插件的代码,我很确定这是一个bug,从某种意义上说,过滤器不适用于
离线。以下是解析(版本3.1.3-SNAPSHOT)中依赖项的代码:

AbstractDependencyFilterMojo:

protected DependencyStatusSets getDependencySets( boolean stopOnFailure, boolean includeParents )
    throws MojoExecutionException
{
    // add filters in well known order, least specific to most specific
    FilterArtifacts filter = new FilterArtifacts();

    filter.addFilter( new ProjectTransitivityFilter( getProject().getDependencyArtifacts(),
                                                     this.excludeTransitive ) );

    filter.addFilter( new ScopeFilter( DependencyUtil.cleanToBeTokenizedString( this.includeScope ),
                                       DependencyUtil.cleanToBeTokenizedString( this.excludeScope ) ) );

    filter.addFilter( new TypeFilter( DependencyUtil.cleanToBeTokenizedString( this.includeTypes ),
                                      DependencyUtil.cleanToBeTokenizedString( this.excludeTypes ) ) );

    filter.addFilter( new ClassifierFilter( DependencyUtil.cleanToBeTokenizedString( this.includeClassifiers ),
                                            DependencyUtil.cleanToBeTokenizedString( this.excludeClassifiers ) ) );

    filter.addFilter( new GroupIdFilter( DependencyUtil.cleanToBeTokenizedString( this.includeGroupIds ),
                                         DependencyUtil.cleanToBeTokenizedString( this.excludeGroupIds ) ) );

    filter.addFilter( new ArtifactIdFilter( DependencyUtil.cleanToBeTokenizedString( this.includeArtifactIds ),
                                            DependencyUtil.cleanToBeTokenizedString( this.excludeArtifactIds ) ) );

    ...

很明显,
离线
的代码在解析依赖项时没有应用这些过滤器。因此,我插入了一张项目票证以确认:

这里有进展吗?
@Override
protected void doExecute()
    throws MojoExecutionException
{
    // get sets of dependencies
    results = this.getDependencySets( false, includeParents );

    ...
}
protected DependencyStatusSets getDependencySets( boolean stopOnFailure, boolean includeParents )
    throws MojoExecutionException
{
    // add filters in well known order, least specific to most specific
    FilterArtifacts filter = new FilterArtifacts();

    filter.addFilter( new ProjectTransitivityFilter( getProject().getDependencyArtifacts(),
                                                     this.excludeTransitive ) );

    filter.addFilter( new ScopeFilter( DependencyUtil.cleanToBeTokenizedString( this.includeScope ),
                                       DependencyUtil.cleanToBeTokenizedString( this.excludeScope ) ) );

    filter.addFilter( new TypeFilter( DependencyUtil.cleanToBeTokenizedString( this.includeTypes ),
                                      DependencyUtil.cleanToBeTokenizedString( this.excludeTypes ) ) );

    filter.addFilter( new ClassifierFilter( DependencyUtil.cleanToBeTokenizedString( this.includeClassifiers ),
                                            DependencyUtil.cleanToBeTokenizedString( this.excludeClassifiers ) ) );

    filter.addFilter( new GroupIdFilter( DependencyUtil.cleanToBeTokenizedString( this.includeGroupIds ),
                                         DependencyUtil.cleanToBeTokenizedString( this.excludeGroupIds ) ) );

    filter.addFilter( new ArtifactIdFilter( DependencyUtil.cleanToBeTokenizedString( this.includeArtifactIds ),
                                            DependencyUtil.cleanToBeTokenizedString( this.excludeArtifactIds ) ) );

    ...