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>:
Luego crea un archivo settings.xml en la raiz del proyecto:...
<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>
...
<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.xmlCon esto queda resuelto el problema :)
No hay comentarios:
Publicar un comentario