Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在以太中添加RemoteRepository以获得直接依赖关系?_Java_Maven_Aether - Fatal编程技术网

Java 如何在以太中添加RemoteRepository以获得直接依赖关系?

Java 如何在以太中添加RemoteRepository以获得直接依赖关系?,java,maven,aether,Java,Maven,Aether,我正在使用以下代码添加远程存储库,以使用以太从工件获取依赖项 public static void main( String[] args ) throws Exception { RepositorySystem system = Booter.newRepositorySystem(); Artifact artifact = new DefaultArtifact( "org.apache.lo

我正在使用以下代码添加远程存储库,以使用以太从工件获取依赖项

    public static void main( String[] args )
            throws Exception
        {
            RepositorySystem system = Booter.newRepositorySystem();
            Artifact artifact = new DefaultArtifact( "org.apache.logging.log4j:log4j-api:2.1" );
            List<RemoteRepository> repositories = new ArrayList<RemoteRepository>();


        repositories.add((new RemoteRepository.Builder("central", "", "https://repo1.maven.org/maven2")).build());


        DefaultRepositorySystemSession session = Booter.newRepositorySystemSession(system);

        ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
        descriptorRequest.setArtifact( artifact );
        descriptorRequest.setRepositories( system.newResolutionRepositories(session, repositories ) );

        ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );

        for ( Dependency dependency : descriptorResult.getDependencies() )
        {
            System.out.println( dependency );
        }
    }

您可以尝试使用“默认”作为存储库类型吗?(新的RemoteRepository.Builder(“中心”、“默认值”))默认的含义是什么?我找不到任何关于任何可用类型的文档。@gambo同意文档对于很多断开的链接都没有用处。由于使用了“Maven2”存储库,Aether为其提供布局工厂,并且必须具有“默认”内容类型。请参阅org.eclipse.Aether.internal.impl.Maven2RepositoryLayoutFactory#第62行
Exception in thread "main" org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.logging.log4j:log4j-api:jar:2.1
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:329)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:217)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:287)
    at org.eclipse.aether.examples.GetDirectDependencies.main(GetDirectDependencies.java:48)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.apache.logging.log4j:log4j-api:pom:2.1 from/to central (https://repo1.maven.org/maven2): Cannot access https://repo1.maven.org/maven2 with type  using the available connector factories: BasicRepositoryConnectorFactory
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:314)