MAVEN 相关问题
MAVEN 安装
检查 JDK 是否安装
1、
C:\Users\panjunbiao>echo %Java_Home%
C:\Users\panjunbiao>java -version
2、安装连接 https://help.aliyun.com/document_detail/40814.html
下载 maven
1、maven 下载界面 https://link.csdn.net/?target=http%3A%2F%2Fmaven.apache.org%2Fdownload.cgi
2、将指定文件解压到对应的目录
3、配置环境配置
4、在Path变量值后面加上:;%Maven_Home%\bin;
5、检查 maven 是否安装成功
配置 maven (本地仓库和镜像)
1、
2、本地仓库地址
3、配置国内镜像
- 注意:可以同时配置公司私服地址 (最好找同事要一下 maven 的配置文件记得改一下本地仓库地址)
IDEA 中拉取 jar 失败问题
1、检查是否正确设置 maven
2、点击 maven 插件从磁盘重新加载配置
3、reload project
4、由于网络原因导致下了一半的 jar 包中断,导致 jar 不可用
- 解决方案:
1、删除本地仓库中拉取一般的资源
2、运行相关配置
package com.dadastory;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Author:chenda
* @Date:2021/7/20 15:07
*/
public class Maven_Tools {
private static final Properties properties = new Properties();
static {
try {
File file = new File("config.properties");
if (file.exists()) {
properties.load(new FileInputStream(file));
System.out.println("您的配置文件如下:");
String JavaWorkspacePath = properties.getProperty("JavaWorkspacePath");
String MavenRepositoryPath = properties.getProperty("MavenRepositoryPath");
if (JavaWorkspacePath != null && MavenRepositoryPath != null) {
System.out.println("Java项目工作路径为:" + JavaWorkspacePath);
System.out.println("Maven仓库路径地址为:" + MavenRepositoryPath);
} else {
changeProperties();
}
System.out.println("");
} else {
System.out.println("配置文件不存在!");
System.exit(1);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static final Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
System.out.println("欢迎使用Idea清理小工具");
System.out.println("###################################");
System.out.println("-----------------------------------");
System.out.println("1.清除Maven仓库未成功下载的POM依赖文件 |");
System.out.println("2.清除Idea项目文件下所有的编译缓存 |");
System.out.println("3.修改配置文件路径 |");
System.out.println("4.退出 |");
System.out.println("-----------------------------------");
System.out.println("请选择你需要的功能项:");
String fuc = sc.nextLine();
if (!isDigit2(fuc)) System.out.println("您输入的格式有误,请重新输入!");
int num = Integer.parseInt(fuc);
switch (num) {
case 1:
cleanMavenPom();
break;
case 2:
cleanMyProject();
break;
case 3:
try {
changeProperties();
} catch (IOException e) {
e.printStackTrace();
}
break;
case 4:
System.exit(0);
}
}
}
//修改配置路径
private static void changeProperties() throws IOException {
System.out.println("请输入新的项目工作空间的绝对路径路径:(例如:D:\\Java_workspace)");
String JavaWorkspacePath = sc.nextLine();
System.out.println("请输入新的Maven仓库文件夹的绝对路径路径:(例如:D:\\Maven\\Repository)");
String MavenRepositoryPath = sc.nextLine();
File file1 = new File(JavaWorkspacePath);
File file2 = new File(MavenRepositoryPath);
if (!file1.exists()) System.out.println("您输入的" + JavaWorkspacePath + "不存在!");
if (!file2.exists()) System.out.println("您输入的" + MavenRepositoryPath + "不存在!");
if (file1.exists() && file2.exists()) {
properties.setProperty("JavaWorkspacePath", JavaWorkspacePath);
properties.setProperty("MavenRepositoryPath", MavenRepositoryPath);
File file = new File("config.properties");
FileWriter fileWriter = new FileWriter(file.getAbsolutePath());
properties.store(fileWriter, "");
System.out.println("配置更新成功!");
fileWriter.close();
}
}
//清除项目下面的所有target编译文件
private static void cleanMyProject() {
String path = properties.getProperty("JavaWorkspacePath");
File destDir = new File(path);
if (!destDir.exists()) {
System.out.println("有效路径不存在,请重新配置!");
return;
}
List<File> list = new ArrayList<>();
findAllTarget(destDir, list);
System.out.println("从您的项目中找到了以下的target文件夹:");
list.forEach(System.out::println);
System.out.println("您确认是否删除上述文件?(y/n)");
String confirm = sc.nextLine();
if (confirm.equalsIgnoreCase("y")) {
for (File file : list) {
deleteFile(file);
System.out.println(file.toString() + "清理成功!");
}
}
}
//清除所有pom文件
private static void cleanMavenPom() {
String path = properties.getProperty("MavenRepositoryPath");
File destDir = new File(path);
if (!destDir.exists()) {
System.out.println("有效路径不存在,请重新配置路径!");
return;
}
List<File> list = new ArrayList<>();
findAllPom(destDir, list);
System.out.println("从仓库中找到了以下文件:");
list.forEach(System.out::println);
System.out.println("您确认是否删除文件?(y/n)");
String confirm = sc.nextLine();
if ("y".equalsIgnoreCase(confirm)) {
for (File file : list) {
File parentFile = file.getParentFile();
file.delete();
parentFile.delete();
System.out.println(file.toString() + "清理成功!");
}
}
}
//查询所有pom文件,并添加到集合
private static void findAllPom(File destDir, List<File> list) {
File[] files = destDir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) findAllPom(file, list);
if (file.isFile()) {
if (file.toString().contains("lastUpdated")) {
list.add(file);
}
}
}
}
}
//查询所有target文件夹,并添加到集合
private static void findAllTarget(File destDir, List<File> list) {
if (destDir.isFile()) return;
if (destDir.isDirectory() && destDir.toString().endsWith("target")) list.add(destDir);
File[] files = destDir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) findAllTarget(file, list);
}
}
}
// 判断一个字符串是否都为数字
private static boolean isDigit2(String strNum) {
Pattern pattern = Pattern.compile("[0-9]{1,}");
Matcher matcher = pattern.matcher((CharSequence) strNum);
return matcher.matches();
}
//递归删除文件夹
private static void deleteFile(File desDir) {
File[] files = desDir.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) deleteFile(file);
if (file.isFile()) file.delete();
}
}
desDir.delete();
}
}
2、config.properties
#
#Wed Jul 21 15:18:43 CST 2021
MavenRepositoryPath=D://Program Files//maven-local-repository
JavaWorkspacePath=D://Program Files
3、运行程序清理没有下载完的配置
私服
1、如果根据上面的配置还是不行
标签:问题,File,list,System,MAVEN,file,println,相关,out From: https://www.cnblogs.com/ayizzz/p/17490033.html1、检查是否引用了公司封装的资源,如果有检查一下和公司私服是否能 Ping 通
2、(可选)下载私服地址的 jar 包到本地执行 maven install 文件地址