Forsythe
Forsythe

Reputation: 145

Download jar files from Maven Repositories

Is there any way to download a jar file from a maven repository using java, or any other language?

In a Maven project, when I add a dependency it usually downloads the jar files from a remote repository if it does not exist on the local system.

Is there any way to do that, without using Maven, like in a library, or construct a URL and then fetch the jar?

Upvotes: 5

Views: 14521

Answers (4)

clankill3r
clankill3r

Reputation: 9533

Let's say you want to download:

<dependency>
  <groupId>org.eclipse.jetty.ee10.websocket</groupId>
  <artifactId>jetty-ee10-websocket-jakarta-server</artifactId>
  <version>12.0.7</version>
</dependency>

If you have mvn downloaded (you can even leave it in your downloads folder...) the run:

mvn dependency:copy -Dartifact=org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server:12.0.7 -DoutputDirectory=test/

It will download what you want.

Upvotes: 0

Franck
Franck

Reputation: 1455

  • Navigate in a browser to https://mvnrepository.com/
  • Identify your library. (Enter the library name or a related topic into the search box. Then select it by clicking on it.)
  • On the library's page you have to click on the particular version you want.
  • On the version page there is a table row named Files which contains the links to the .pom and .jar files.

A Java application to download a file from an URL:

import java.io.*; import java.net.*; import java.nio.file.*;
public class Download {
    public static void main(String[] args) throws MalformedURLException, IOException{
        String url = args[0];
        String fileName = url.substring(url.lastIndexOf('/') + 1, url.length());
        try(InputStream in = new URL(args[0]).openStream()) {
                Files.copy(in, Paths.get(fileName), StandardCopyOption.REPLACE_EXISTING);
        }  
    }
}
$ java Download.java https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.36.0.3/sqlite-jdbc-3.36.0.3.jar
$ ls sqlite-jdbc-3.36.0.3.jar 
sqlite-jdbc-3.36.0.3.jar
$ 

Other than Java everything else works as fine for the download, i.e. download via your browser or via a command line tool like curl:

$ curl https://repo1.maven.org/maven2/org/json/json/20220320/json-20220320.jar --output json-20220320.jar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 70939  100 70939    0     0   339k      0 --:--:-- --:--:-- --:--:--  348k

Upvotes: 5

Reymar
Reymar

Reputation: 91

Usually you will find the information related to the downloads directly in the repository web page, most of the time that information is in maven website too, maven was built precisely to tackle errors with downloaded jars though

Upvotes: 0

Kirill Vizniuk
Kirill Vizniuk

Reputation: 144

You can easily download any jar or pom files from public repos, for example

https://repo1.maven.org/maven2/...
<!-- Example -->
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/2.6.7/

Downloading file in Java is pretty straightforward, there numerous ways to do so when you have URL.

Upvotes: 1

Related Questions