Как вы можете найти последнюю версию артефакта maven из Java с использованием эфира?

Их документация очень тонкая, и я не мог понять это.

Я нашел здесь частичный ответ, но у него нет всего кода.

Как вы можете найти последнюю версию артефакта maven из Java с использованием эфира?

    Команда Aether поддерживает демонстрационную страницу с таким примером: FindNewestVersion .

    Упрощенный, это то, к чему это сводится.

    Добавьте к своим POM зависимости эфира:

       org.eclipse.aether aether-impl ${aetherVersion}   org.eclipse.aether aether-connector-basic ${aetherVersion}   org.eclipse.aether aether-transport-file ${aetherVersion}   org.eclipse.aether aether-transport-http ${aetherVersion}   org.apache.maven maven-aether-provider ${mavenVersion}    1.1.0 3.3.9  

    И тогда вы можете использовать его так:

     public static void main(String[] args) { RemoteRepository central = new RemoteRepository.Builder("central", "default", "http://repo1.maven.org/maven2/").build(); RepositorySystem repoSystem = newRepositorySystem(); RepositorySystemSession session = newSession(repoSystem); Artifact artifact = new DefaultArtifact("groupId:artifactId:(0,]"); VersionRangeRequest request = new VersionRangeRequest(artifact, Arrays.asList(central), null); try { VersionRangeResult versionResult = repoSystem.resolveVersionRange(session, request); System.out.println(versionResult.getHighestVersion()); } catch (VersionRangeResolutionException e) { e.printStackTrace(); } } 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("target/local-repo"); session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); return session; } 

    Это создает ссылку на repository Maven Central и использует диапазоны версий [0,) чтобы указать, что нас интересуют все версии с неограниченным максимальным значением. Наконец, выполняется запрос диапазона версии, который позволяет нам определить последнюю версию.

    Это из сайта проекта Aether Demonstration and Examples . Я не пытался запустить его, но это должен быть ваш ответ.

     public static void main( String[] args ) throws Exception { System.out.println( "------------------------------------------------------------" ); System.out.println( FindNewestVersion.class.getSimpleName() ); RepositorySystem system = Booter.newRepositorySystem(); RepositorySystemSession session = Booter.newRepositorySystemSession( system ); Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:[0,)" ); VersionRangeRequest rangeRequest = new VersionRangeRequest(); rangeRequest.setArtifact( artifact ); rangeRequest.setRepositories( Booter.newRepositories( system, session ) ); VersionRangeResult rangeResult = system.resolveVersionRange( session, rangeRequest ); Version newestVersion = rangeResult.getHighestVersion(); System.out.println( "Newest version " + newestVersion + " from repository " + rangeResult.getRepository( newestVersion ) ); } 
    Давайте будем гением компьютера.