MAVEN 相关问题
Posted ayizzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
- maven 下载界面 https://link.csdn.net/?target=http%3A%2F%2Fmaven.apache.org%2Fdownload.cgi
- 将指定文件解压到对应的目录
- 配置环境变量
- 在Path变量值后面加上:;%Maven_Home%\\bin;
- 检查 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、如果根据上面的配置还是不行
1、检查是否引用了公司封装的资源,如果有检查一下和公司私服是否能 Ping 通
2、(可选)下载私服地址的 jar 包到本地执行 maven install 文件地址
以上是关于MAVEN 相关问题的主要内容,如果未能解决你的问题,请参考以下文章