Solución:
La siguiente URL recuperará la última versión de log4j 1.2.x:
http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST
Documentado aquí
Actualizar
Ejemplo usando curl:
curl -L "http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST" -o log4j.jar
Actualización para Log4j2
Log4j 1.2 es EOL desde el verano de 2015 y se sabe que está roto en Java 9.
Aquí está el enlace para los artefactos Log4j:
- log4j-api: https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.apache.logging.log4j&a=log4j-api&v=LATEST
- log4j-core: https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.apache.logging.log4j&a=log4j-core&v=LATEST
En Nexus LATEST está diseñado para trabajar con complementos de maven en lugar de con artefactos regulares. Nexus simplemente no garantiza que lo ÚLTIMO funcione en otros casos. Si ahora mismo te devuelve la versión correcta del artefacto, mañana puede dejar de funcionar, por ejemplo, si ejecutas Rebuild Metadata para el repositorio de Nexus. ¿Quiere confiar en el mecanismo que puede romperse en cualquier momento (por ejemplo, durante el proceso de liberación?). Yo dudo. Lea este artículo para obtener más información.
Para encontrar la ÚLTIMA versión del artefacto, debe escribir su propio script para invocar la API de búsqueda y ordenar las versiones del artefacto como desee. O puede escribir su propio complemento para Nexus.
Alternativamente, si su flujo de trabajo lo permite, puede usar SNAPSHOTs en lugar de versiones de lanzamiento. Si no incrementa la parte numérica, entonces x.y.z-SNAPSHOT
siempre devolverá el último binario.
Último punto: no use las últimas versiones de artefactos, en la gran mayoría de los casos, si tiene un caso de uso de este tipo, entonces algo anda mal con sus implementaciones (o lo que sea que esté haciendo). En general, debes saber la versión exacta que vas a utilizar.
Esta respuesta se ha copiado de: https://stackoverflow.com/a/39485361/1450799
Tengo el sistema operativo Linux y no tengo acceso a la API REST, por lo que utilicé los siguientes comandos para obtener la última versión de las instantáneas de Nexus:
Un ejemplo de instantáneas maven-metadata.xml del repositorio WSO2:
$ curl -s "http://maven.wso2.org/nexus/content/repositories/snapshots/org/wso2/is/wso2is/maven-metadata.xml"
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.wso2.is</groupId>
<artifactId>wso2is</artifactId>
<versioning>
<latest>5.3.0-SNAPSHOT</latest>
<release></release>
<versions>
<version>5.1.0-SNAPSHOT</version>
<version>5.2.0-SNAPSHOT</version>
<version>5.3.0-SNAPSHOT</version>
</versions>
<lastUpdated>20160914062755</lastUpdated>
</versioning>
</metadata>
Extrayendo de la última etiqueta XML dentro de maven-metadata.xml:
curl -s "http://maven.wso2.org/nexus/content/repositories/snapshots/org/wso2/is/wso2is/maven-metadata.xml" |
grep "<latest>.*</latest>" |
sed -e "s#(.*)(<latest>)(.*)(</latest>)(.*)#3#g"
Extrayendo de la etiqueta XML de la versión dentro de maven-metadata.xml:
curl -s "http://maven.wso2.org/nexus/content/repositories/snapshots/org/wso2/is/wso2is/maven-metadata.xml" |
grep "<version>.*</version>" |
sort --version-sort | uniq | tail -n1 |
sed -e "s#(.*)(<version>)(.*)(</version>)(.*)#3#g"
El resultado de ambos comandos hasta hoy 14 de septiembre de 2016 es:
5.3.0-SNAPSHOT