Buscar este blog

Aviso

El autor de éste blog no se hace responsable de los posibles daños o perdidas de información, que pudieran ocasionarse en su sistema o su vida por la aplicación de la información aquí contenida.

viernes, 7 de agosto de 2020

Configurar un repositorio local junto a un repositorio externo como Jfrog

Imagínate que te encuentras en la siguiente situación, necesitas usar jfrog como repositorio de código, pero al mismo tiempo necesitas usar unas bibliotecas de java localmente, que no se encuentran en dicho repositorio. Para ello se usa como url del recurso el protocolo "file" que nos permite usar archivos locales como recurso:

Primero creamos un directorio en la raiz del proyecto llamado local-maven-repo (o cualquier otro, pero debes reemplazarlo donde aparezca), luego procedemos a instalar el jar en dicho repositorio con el comando:

mvn deploy:deploy-file \
-DgroupId=com.example \
-DartifactId=dependency \
-Dversion=1.0 \
-Durl=file:./local-maven-repo/ \
-DrepositoryId=localrepository \
-DupdateReleaseInfo=true \
-Dfile=/home/jorge/libs/depencency.jar

Luego actuazliza el archivo pom.xml con esta sección a nivel de <project>:

...
<repositories>
<repository>
<id>localrepository</id>
<name>localrepository</name>
<url>file:///${basedir}/local-maven-repo</url>
</repository>
<repository>
<id>central</id>
<name>central</name>
<url>https://myrepo.jfrog.io/
myrepo/maven-public/</url>
</repository>
</repositories>
...
Luego crea un archivo settings.xml en la raiz del proyecto:

<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/SETTINGS/1.1.0" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
    <mirrors>
        <mirror>
            <id>localrepository</id>
            <mirrorof>localrepository</mirrorof>
            <url>file://${env.PWD}/local-maven-repo</url>
            <name>localrepository</name>
        </mirror>
        <mirror>
            <id>central</id>
            <mirrorof>*</mirrorof>
            <url>https://myrepo.jfrog.io/myrepo/maven-public/</url>
            <name>central</name>
        </mirror>
    </mirrors>
    <plugingroups>
        <plugingroup>org.sonarsource.scanner.maven</plugingroup>
        <plugingroup>org.jacoco</plugingroup>
    </plugingroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activebydefault>true</activebydefault>
            </activation>
            <properties>
                <sonar.host.url>${SONAR_HOST_URL}</sonar
.host.url>
                <sonar.projectname>${SONAR_PROJECT_NAME}</sonar
.projectname>
                <sonar.login>${SONAR_LOGIN_TOKEN}</sonar
.login>
                <sonar.organization>${SONAR_ORGANIZATION}</sonar
.organization>
                <sonar.projectkey>${SONAR_PROJECT_KEY}</sonar
.projectkey>
                <sonar.java.source>11</sonar
.java.source><!--1.8-->
                <sonar.java.coverageplugin>jacoco</sonar.
java.coverageplugin>
                <sonar.dynamicanalysis>reuseReports</sonar.
dynamicanalysis>
                <sonar.language>java</sonar.
language>
                <sonar.sources>src/main</sonar.
sources>
                <sonar.tests>src/test</sonar
.tests>
            </properties>
        </profile>
    </profiles>
    <localrepository>${user.home}/.m2/repository</localrepository>
    <servers>
        <server>
            <id>central</id>
            <username>${SONAR_USER}</username>
            <password>${SONAR_API_KEY_OR_PASSWORD}</password>
        </server>
    </servers>
</settings>

Por último puedes usar el nuevo comando para instalar las dependencias:

$ mvn install -s settings.xml
Con esto queda resuelto el problema :)

No hay comentarios:

Publicar un comentario

Más populares

Archivo del blog