2016-06-28 124 views
0

我的目标是开发用于工件部署的内部工具。这些工件位于本地存储库管理系统(sonatype nexus)中。经过研究,我试图用Aether-Api来实现这个任务。但我没有在我自己的examples重新编程其中一个。我无法评估错误。从sonatype nexus列出可用的版本与aether-api

public class SourceMaven 
{ 
    private static RepositorySystem newRepositorySystem() 
    { 
     DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); 
     locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class); 
     locator.addService(TransporterFactory.class, FileTransporterFactory.class); 
     locator.addService(TransporterFactory.class, HttpTransporterFactory.class); 

     return locator.getService(RepositorySystem.class);   
    } 
    private static RepositorySystemSession newSession(RepositorySystem system) 
    { 
     DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); 
     LocalRepository localRepo = new LocalRepository("/usr/local/home/myusername/tmp/aether"); 
     session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); 

     return session;   
    } 
    private static List<RemoteRepository> newRepositories(RepositorySystem system, RepositorySystemSession session) 
    { 
     return new ArrayList<RemoteRepository>(Arrays.asList(newCentralRepository())); 
    } 
    private static RemoteRepository newCentralRepository() 
    { 
     return new RemoteRepository.Builder("sonanexus", "default", "http://ournexusservername:8081/nexus/#nexus").build(); 
    } 


    public List<String> getReleaseList(String url) 
    { 
     RepositorySystem system = newRepositorySystem(); 
     RepositorySystemSession session = newSession(system); 

     Artifact artifact = new DefaultArtifact("org.eclipse.aether:aether-util:[0,)"); 

     VersionRangeRequest rangeRequest = new VersionRangeRequest(); 
     rangeRequest.setArtifact(artifact); 
     rangeRequest.setRepositories(newRepositories(system, session)); 

     try 
     { 
      VersionRangeResult rangeResult = system.resolveVersionRange(session, rangeRequest); 
      List<Version> versions = rangeResult.getVersions(); 

      System.out.println("available versions " + versions); 
     } 
      catch (VersionRangeResolutionException ex) 
     { 
      System.out.println("failed ..."); 
     } 

     return null; 
    } 
} 

作为输出,我只能得到一个没有错误的空列表。

可用版本[]

的requestested工件坐标在我们的关系链接,并且可以在webinterface找到。

回答