从 Maven 存储库下载 jar 文件

问题描述 投票:0回答:4

有没有办法使用java或任何其他语言从maven存储库下载jar文件?

在 Maven 项目中,当我添加依赖项时,如果本地系统上不存在该依赖项,它通常会从远程存储库下载 jar 文件。

有没有办法做到这一点,而不使用 Maven,就像在库中一样,或者构造一个 URL,然后获取 jar?

java maven
4个回答
3
投票
  • 在浏览器中导航至 https://mvnrepository.com/
  • 识别您的图书馆。 (在搜索框中输入图书馆名称或相关主题。然后通过单击进行选择。)
  • 在图书馆的页面上,您必须单击您想要的特定版本。
  • 在版本页面上有一个名为 Files 的表行,其中包含 .pom 和 .jar 文件的链接。

用于从 URL 下载文件的 Java 应用程序:

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
$ 

除了 Java 之外,其他所有内容都可以正常下载,即通过浏览器或通过命令行工具(如

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

1
投票

例如,您可以轻松地从公共存储库下载任何 jar 或 pom 文件

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

在 Java 中下载文件非常简单,当你有 URL 时,有多种方法可以做到这一点。


0
投票

通常你会直接在存储库网页中找到与下载相关的信息,大多数情况下这些信息也在 Maven 网站中,不过 Maven 的构建正是为了解决下载的 jar 的错误


0
投票

假设您要下载:

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

如果您已下载 mvn(您甚至可以将其保留在下载文件夹中...),请运行:

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

它将下载您想要的内容。

© www.soinside.com 2019 - 2024. All rights reserved.