[Ajuda] Java - Não consigo usar dependência publicada no sonatype
Opa galera, estou trabalhando em um projeto Java, nós estamos desenvolvendo budles para utilizar no Karaf. Nós decidimos então fazer um processo de automatização da publicação desses bundles. O primeiro passo para isso é publicá-los em um repositório online, logo após iremos utilizar o GitHub Actions para fazer o processo de automatização.
Porém estamos com um problema, alguns desses bundles já foram publicados tranquilamente no https://s01.oss.sonatype.org/, então eu fui fazer um teste de tentar utilizar um desses bundles (publicados) como dependência de outro, então recebi o seguinte erro:
Could not find artifact io.github.larsid:soft-iot-mapping-devices:jar:1.0-SNAPSHOT
Como se a dependência não fosse possível de ser encontrada, porém a mesma já está disponível no repositório: https://s01.oss.sonatype.org/#nexus-search;quick~larsid.
A dependência está definida assim no pom.xml
:
<dependency>
<groupId>io.github.larsid</groupId>
<artifactId>soft-iot-mapping-devices</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Alguém aí já teve o mesmo problema ou semelhante?
Eu gostaria de saber se eu preciso fazer alguma configuração, por exemplo adicionar esse repositório na minha máquina ou alguma tag <repository></repository>
no meu pom.xml
.
Desde já agradeço!
O erro "Could not find artifact" ocorre provavelmente porque vc precisa adicionar o repositório no pom.xml:
<repositories>
<repository>
<id>Sonatype</id>
<url>https://s01.oss.sonatype.org/service/local/repositories/</url>
</repository>
</repositories>
Só que aí o erro muda para:
Failed to collect dependencies at io.github.larsid:soft-iot-mapping-devices:jar:1.0-SNAPSHOT: Failed to read artifact descriptor for io.github.larsid:soft-iot-mapping-devices:jar:1.0-SNAPSHOT: Could not transfer artifact io.github.larsid:soft-iot-mapping-devices:pom:1.0-SNAPSHOT from/to Sonatype (https://s01.oss.sonatype.org/service/local/repositories/): Authentication failed for https://s01.oss.sonatype.org/service/local/repositories/io/github/larsid/soft-iot-mapping-devices/1.0-SNAPSHOT/soft-iot-mapping-devices-1.0-SNAPSHOT.pom 401 Unauthorized -> [Help 1]
No caso, authentication failed geralmente ocorre porque precisa de usuário e senha, bastaria adicionar:
<server>
<id>Sonatype</id>
<username>usuário</username>
<password>senha</password>
</server>
Mas na verdade, em vez de usar snapshots, por que não usar releases?
<dependency>
<groupId>io.github.larsid</groupId>
<artifactId>soft-iot-mapping-devices</artifactId>
<version>1.0.0</version>
</dependency>
Aí nem precisa adicionar o repositório do Sonatype, pois a versão 1.0.0 está publicada em https://repo.maven.apache.org, e aí o Maven consegue baixar normalmente.
Tudo certo, Allan? Espero que sim... Cara, já trabalhei com esse tipo de importação via Nexus e, pelo que estou vendo, é apenas uma questão de você estar passando a versão errada - fazendo com que ele busque algo inexistente.
No campo 1.0-SNAPSHOT mude para 1.0.0 (esse nome equivale a pasta). Percebi que recentemente foi enviado o mesmo artefato, porém, dessa vez com a versão inicial que você postou no escopo do post então imagino que isso tenha resolvido seu problema, mas espero que isso te ajude de alguma forma!
Uma dica: para evitar problemas de confusão, sugiro que deem continuidade a apenas um desses artefatos!