2017-02-10 14 views
1

최신 보조 Nexus의 아티팩트 버전을 다운로드하고 싶습니다. 아래처럼 뭔가 :.Nexus : Nexus 나머지 API를 사용하여 이슈의 최신 부 버전을 다운로드 할 수 있습니다

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

넥서스 나머지 API는 허용하지 않습니다 버전과 같은 3.0.x의 또는 3.0 *. 는 주요 버전을 변경 될 수 있으므로

나는 V = 최신을 사용할 수 없습니다.

해결 방법이 있습니까? 당신을 가정

답변

0

groovy를 ant로 추가하여 문제를 해결하고 매크로를 만들어 넥서스에서 최신 부 버전을 가져 왔습니다.

<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>