2017-02-10 25 views
1

Я хочу скачать последняя новинка версия артефакта из Nexus. Что-то, как показано ниже:.Nexus: Как я могу скачать последнюю второстепенную версию артефакта, используя nexus rest api

http://local:8081/service/local/artifact/maven/content?g=com.mycompany&a=my-app&v=3.0.x

Nexus остальные апи не принимает версию как 3.0.x или 3,0 *.

Я не могу использовать V = Последняя, поскольку это может изменить основную версию.

Есть ли способ решить эту проблему.

ответ

0

Решила проблему, добавив groovy с муравьями и создав макрос, чтобы получить последнюю второстепенную версию из nexus.

<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpath="Ant-library/groovy-all-2.2.1.jar"/> 

<macrodef name="fetchLatestMinor"> 
    <attribute name="group" default="NOT SET"/> 
    <attribute name="artifact" default="NOT SET"/> 
    <attribute name="majorVersion" default="NOT SET"/> 
    <attribute name="repo" default="NOT SET"/> 
    <attribute name="packaging" default="NOT SET"/> 
    <attribute name="destination" default="NOT SET"/> 
    <sequential> 
     <property name="latestVersion" value=""/> 
     <groovy> 
      def url = "http://local:8081/nexus/service/local/lucene/[email protected]{artifact}&amp;v="[email protected]{majorVersion}+".*-SNAPSHOT" 
      def xml = url.toURL().text 
      def root = new XmlParser().parseText(xml) 
      properties["latestVersion"] = root.data.artifact[0].version.text() 
      println root.data.artifact[0].version.text() 
     </groovy> 
     <get src="http://local:8081/nexus/service/local/artifact/maven/[email protected]{group}&amp;[email protected]{artifact}&amp;v=${latestVersion}&amp;[email protected]{repo}&amp;[email protected]{packaging}" dest="@{destination}"/> 
    </sequential> 
</macrodef> 

<target name="run"> 
    <fetchLatestMinor group="<group_name>" artifact="<artifact_name>" majorVersion="2.0" repo="<repo_name>" packaging="war" destination="abc.war" /> 
</target> 
0

Предполагая, что вы используете Nexus 2.x, вы можете использовать

http://local:8081/service/local/lucene/search?repositoryId=someRep&a=my-app

, чтобы получить XML-ответ с перечислением соответствующих артефактов. Из этого вы можете сделать вывод о том, какую версию вы хотите.

+0

Я хочу URL-адрес, который может загрузить артефакт. –