首页 > 其他分享 >MAVEN 相关问题

MAVEN 相关问题

时间:2023-06-18 23:44:51浏览次数:47  
标签:问题 File list System MAVEN file println 相关 out

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、如果根据上面的配置还是不行

1、检查是否引用了公司封装的资源,如果有检查一下和公司私服是否能 Ping 通
2、(可选)下载私服地址的 jar 包到本地执行 maven install 文件地址

标签:问题,File,list,System,MAVEN,file,println,相关,out
From: https://www.cnblogs.com/ayizzz/p/17490033.html

相关文章

  • maltego的 卡 慢 没反应 的问题解决方法
    maltego的卡慢没反应的问题主要是因为它要在国外下载和认证一些东西,导致软件无法正常访问。解决方法:配置带理,软件内部就支持,打开选择设置,    选择手动指定,填入服务器ip和端口,我使用链接本地服务器带理,服务器要允许局域网连接,并且关闭服务器上的防火墙,如果......
  • 关于python反射机制中的参数问题处理
    关于python反射机制中的参数问题处理 python的反射机制十分的常用,主要是字符串与模块应用之间的连接方法。核心是将字符串转换成可以调用模块、模块方法的变量。主要包括了以下四个方法:hasattr(obj,name,/)Returnwhethertheobjecthasanattributewi......
  • 虚拟机安装ubuntu22.04以及后续出现的问题
    官网下载:Ubuntu系统下载|Ubuntu创建新的虚拟机 自定义 默认下一步 修改安装位置,系统盘会不断增加 默认下一步 自定义硬件(移除打印机),使用ISO映像文件(M)  关闭,完成。开启虚拟机:(默认启动默认安装,要不容易卡死) 安装Ubuntu continue创建SWAP分区:S......
  • 本科生应该选择考研还是就业?这是所有大学生应该思考的问题
    亮观点首先要声明接下来的内容主要是针对互联网人来说的,不适用于所有人。对于互联网人,特别是做技术的来说,越早就业越好。是什么给出这个结论?我在大一的时候就决定了毕业以后找工作,读到高三已经是12年的光阴,对于当时的我来说,再读完四年大学,我再也不想读书了。一是因为家庭条件......
  • 机器学习中的神经网络:如何创建强大的模型并解决复杂的问题
    目录文章标题:《17."机器学习中的神经网络:如何创建强大的模型并解决复杂的问题"》文章背景介绍:随着人工智能技术的快速发展,神经网络已经成为机器学习领域中最受欢迎的模型之一。神经网络是一种基于深度学习的技术,能够通过多层神经元来学习和提取特征,从而实现复杂的分类、回归和......
  • 【月度刷题计划同款】经典 LCS 问题
    题目描述这是LeetCode上的522.最长特殊序列II,难度为中等。Tag:「LCS」、「最长公共子序列」、「序列DP」、「枚举」、「动态规划」给定字符串列表 strs,返回其中最长的特殊序列。如果最长特殊序列不存在,返回特殊序列定义如下:该序列为某字符串独有的子序列(即不能是其......
  • AM@空间直角坐标系@数量积和向量积@向量的外积在物理学中的相关概念
    文章目录空间直角坐标系坐标面分向量@坐标分解式余弦定理数量积的坐标表示公式向量积向量积的坐标表示公式向量的外积在物理学中的相关概念物理量ref角速度和向量积量纲Baseunit(measurement)Background......
  • element-tree相关经验汇总
    前言:这个el-tree是前段时间做项目时候写的,一直没时间进行整理,最近那个项目的tree数据超级大,导致浏览器卡死,需要进行处理,正好,趁着这次,把相关的配置也给整理一下(*^▽^*)大概呢就张这个样子:有查询、增加、删除、修改、上移、下移几个功能 那就先写一下相关配置吧: 我这个树上用......
  • g4d/g4e反馈问题、提出建议须知
    为了便于g4d/g4e开发者更快地重现、定位问题,请大家反馈问题的时候,尽可能提供足够多的相关信息,主要有:1、你所用的g4d/g4e的版本号是什么?2、你所用的g4d/g4e的主菜单是怎样的?3、使用过程中发现了什么问题,最好提供问题的截图,图文并茂,“一图胜千文”!4、你发现是从g4d/g4e的哪个版本开始......
  • 小程序授权常见问题解析及解决方案
    引言小程序作为一种轻便、易用的应用形式,正在成为许多企业和个人开发者的首选。在用户使用小程序时,需要授权相应的权限才能获取更好的使用体验。但是,有时会遇到授权失败或出现安全隐患等问题。本文将从常见问题的角度出发,为大家解析小程序授权常见问题及其解决方案。下午一直犯困吟......