有沒有辦法使用 java 或任何其他語言從 maven 存盤庫下載 jar 檔案?
在 Maven 專案中,當我添加依賴項時,如果本地系統上不存在該 jar 檔案,它通常會從遠程存盤庫下載 jar 檔案。
有沒有辦法做到這一點,而不使用 Maven,比如在庫中,或者構造一個 URL 然后獲取 jar?
uj5u.com熱心網友回復:
例如,您可以輕松地從公共存盤庫下載任何 jar 或 pom 檔案
https://repo1.maven.org/maven2/...
<!-- Example -->
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter/2.6.7/
用 Java 下載檔案非常簡單,當你有 URL 時有很多方法可以做到這一點。
uj5u.com熱心網友回復:
通常您會直接在存盤庫網頁中找到與下載相關的資訊,大多數時候該資訊也在 maven 網站中,但 maven 的構建正是為了解決下載 jar 的錯誤
uj5u.com熱心網友回復:
在瀏覽器中導航到https://mvnrepository.com/然后您可以輸入您要查找的庫,然后單擊您想要的版本。單擊版本后,會出現一個表,其中包含名為Files的行,其中包含指向 .pom 和 .jar 檔案的鏈接。
從 URL 下載檔案的 Java 應用程式:
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.net.URL;
import java.net.MalformedURLException;
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
uj5u.com熱心網友回復:
使用以下方法找到 jar 檔案的 URL: How To Download Jars From Maven Repository 然后使用此代碼從 URL 下載 jar 檔案:
try (BufferedInputStream in = new BufferedInputStream(new URL(FILE_URL).openStream());
FileOutputStream fileOutputStream = new FileOutputStream(FILE_NAME)) {
byte dataBuffer[] = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) {
fileOutputStream.write(dataBuffer, 0, bytesRead);
}
} catch (IOException e) {
// handle exception
}
從 Java 中的 URL 下載檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474889.html
上一篇:重塑然后爆炸火花資料框中的陣列
