首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出来自sonatype nexus和aether-api的可用版本。

列出来自sonatype nexus和aether-api的可用版本。
EN

Stack Overflow用户
提问于 2016-06-28 12:53:40
回答 1查看 443关注 0票数 1

我的目标是开发一个用于工件部署的内部工具。工件位于本地存储库管理系统(sonatype Sonatype)中。经过研究,我试着用乙醚-Api来完成这项任务.但我没能自己重新编程他们的一个示例。我无法评估错误。

代码语言:javascript
复制
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;
    }
}

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

现有版本[]

请求的工件坐标是链接在我们的关系中,可以在网络接口中找到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-05 08:32:30

上面的代码正在工作。

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

http://hostname:8081/nexus/#nexus

我需要把它改为:

http://hostname:8081/nexus/content/groups/public

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38076815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档