Java 列出sonatype nexus与乙醚api的可用版本

Java 列出sonatype nexus与乙醚api的可用版本,java,deployment,aether,Java,Deployment,Aether,我的目标是开发一个用于工件部署的内部工具。这些工件位于本地存储库管理系统(sonatype nexus)中。在研究之后,我尝试用乙醚Api来实现这个任务。但我没能自己重新编程他们的一个。我无法评估错误 public class SourceMaven { private static RepositorySystem newRepositorySystem() { DefaultServiceLocator locator = MavenRepositorySy

我的目标是开发一个用于工件部署的内部工具。这些工件位于本地存储库管理系统(sonatype nexus)中。在研究之后,我尝试用乙醚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;
    }
}
公共类SourceMaven
{
私有静态存储系统newRepositorySystem()
{
DefaultServiceLocator locator=MavenRepositorySystemUtils.newServiceLocator();
addService(RepositoryConnectorFactory.class、BasicRepositoryConnectorFactory.class);
addService(TransporterFactory.class,FileTransporterFactory.class);
addService(TransporterFactory.class,HttpTransporterFactory.class);
返回locator.getService(RepositorySystem.class);
}
专用静态RepositorySystem会话新闻会话(RepositorySystem)
{
DefaultRepositorySystemSession=MavenRepositorySystemUtils.newSession();
LocalRepository localRepo=newlocalrepository(“/usr/local/home/myusername/tmp/ether”);
setLocalRepositoryManager(system.newLocalRepositoryManager(session,localRepo));
返回会议;
}
私有静态列表新存储库(RepositorySystem、RepositorySystemSession会话)
{
返回新的ArrayList(Arrays.asList(newCentralRepository());
}
私有静态远程存储库newCentralRepository()
{
返回新的RemoteRepository.Builder(“sonanexus”、“default”http://ournexusservername:8081/nexus/#nexusbuild();
}
公共列表getReleaseList(字符串url)
{
RepositorySystem=newRepositorySystem();
RepositorySystemSession会话=新闻会话(系统);
Artifact Artifact=newdefaultartifact(“org.eclipse.ether:ether util:[0,)”;
VersionRangeRequest rangeRequest=新版本rangeRequest();
rangeRequest.setArtifact(工件);
setRepositories(newRepositories(系统、会话));
尝试
{
VersionRangeResult rangeResult=system.resolveVersionRange(会话,rangeRequest);
列表版本=rangeResult.getVersions();
System.out.println(“可用版本”+版本);
} 
捕获(版本RangeSolutionException ex)
{
System.out.println(“失败…”);
}
返回null;
}
}
作为输出,我只得到一个没有错误的空列表

可用版本[]


请求的工件坐标在我们的nexus中链接,可以在webinterface中找到。

上面的代码正在工作

重要的是要澄清更具体的url,而不是

我需要将其更改为:


上面的代码正在工作

重要的是要澄清更具体的url,而不是

我需要将其更改为: