zoukankan      html  css  js  c++  java
  • 关于Maven工程依赖包的一系列问题

    本地仓库和镜像这些就不多说了。

    创建Maven工程慢,转载自解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog

    原因

    IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件。

    该命令的参数-DarchetypeCatalog,可选值为:remote,internal  ,local等,用来指定archetype-catalog.xml文件从哪里获取。

    默认为remote,即从 http://repo1.maven.org/maven2/archetype-catalog.xml路径下载archetype-catalog.xml文件。

    http://repo1.maven.org/maven2/archetype-catalog.xml 文件约为3-4M,下载速度很慢,导致创建过程卡住。

    解决方法

    1.在下面界面添加一个属性,archetypeCatalog = internal

    方法二

    在maven的VM Options加上-DarchetypeCatalog=internal参数,如下: 

     方法3: 用local (推荐这种方法 完美)

    1.由于默认情况下,根据archetype创建maven项目会从网络下载catalog文件,导致创建maven项目缓慢

    Searching for remote catalog: http://repo1.maven.org/maven2/archetype-catalog.xml

    2.解决办法可以设置使用本地catalog文件,在IDEA中设置archetype的使用方式为local;

    -DarchetypeCatalog=local

    直接先把 文件用搜狗浏览器或其它下载工具下载下来。

     

    下载后放到哪里呢,这里与本地仓库的位置有关,假如本地仓库是maven默认的,并没有修改 那么就需要放到 C:Usersdel-berlin.m2 epositoryorgapachemavenarchetypearchetype-catalog2.4下  ,本地仓库的默认位置:Default: ${user.home}/.m2/repository

     

    manven无法自动下载jar包 转载自关于IDEAmaven无法自动下载jar包pom报错

    首先我的错误是在IDEA和ECLIPSE上都无法创建springboot与maven项目,都是同样的maven依赖不能自动下载的原因,所以排除了软件的问题,以下是解决路程:

    一:我先了解了一下maven仓库的构成与核心配置文件settings.xml中每个字段都代表的是什么意思

    复制代码
     1 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
     2   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
     4                       https://maven.apache.org/xsd/settings-1.0.0.xsd">
     5   <localRepository>${user.home}/.m2/repository</localRepository>
     6   <interactiveMode>true</interactiveMode>
     7   <usePluginRegistry>false</usePluginRegistry>
     8   <offline>false</offline>
     9   ...
    10 </settings>
    复制代码
    • <localRepository />:配置系统本地仓库的路径。默认值是${user.home}/.m2/repository目录。此元素特用于允许所有已登录到主服务器的用户共用公共本地仓库。
    • <interactiveMode />true ,Maven尝试与用户交互,需用户输入,否则设置为false,默认为 true
    • <usePluginRegistry />true ,Maven使用 ${user.home}/.m2/plugin-registry.xml 来管理插件版本, 否则false。默认值为 falseNote that for the current version of Maven 2.0, the plugin-registry.xml file should not be depended upon. Consider it dormant for now.(这句话暂时不知如何翻译出来妥当,毕竟已经到Maven 3.x时代)
    • <offline />true, 构建系统在离线模式运行,否则false。默认值为false。此元素对于因网络设置或安全原因而无法连接到远程仓库的服务器非常有用。

    <servers />

    复制代码
     1 <servers>
     2     <server>
     3       <id>server001</id>
     4       <username>my_login</username>
     5       <password>my_password</password>
     6       <privateKey>${user.home}/.ssh/id_dsa</privateKey>
     7       <passphrase>some_passphrase</passphrase>
     8       <filePermissions>664</filePermissions>
     9       <directoryPermissions>775</directoryPermissions>
    10       <configuration></configuration>
    11     </server>
    12   </servers>
    复制代码
    • id:Maven尝试连接的仓库/镜像服务器的id,而不是用户所登录的服务器id。
    • username, password:服务器进行身份验证所需的登录名和密码。
    • privateKey, passphrase::(可选)与前两个元素类似,这两项指定私钥的路径(默认${user.home}/.ssh/id_dsa)和passphrase。 passphrase和 password 元素将来可能外化,但目前它们必须以纯文本形式配置在settings.xml文件中 。
    • filePermissions, directoryPermissions::仓库部署时创建的文件或目录的访问权限。这两个元素的合法值是一个三位数字,对应了unix文件系统的权限,如664,或775。

    <mirrors />

    复制代码
    1  <mirrors>
    2     <mirror>
    3       <id>planetmirror.com</id>
    4       <name>PlanetMirror Australia</name>
    5       <url>http://downloads.planetmirror.com/pub/maven2</url>
    6       <mirrorOf>central</mirrorOf>
    7     </mirror>
    8   </mirrors>
    复制代码
    • id, name::此镜像的唯一标识符和用户友好名称。id用于区分 <mirror /> 元素,并在连接到镜像时从<servers />部分选择相应的验证信息。
    • url: 此镜像的URL 。构建系统将使用此URL连接到仓库,而不是原始仓库URL。
    • mirrorOf::此镜像所镜像的仓库id。例如,指向Maven中央仓库central repository(https://repo.maven.apache.org/maven2/)的一个镜像,将此元素设置为 central。更高级的映射,如 repo1,repo2or *,! 也是可以的.,但不能与<mirror />的id相同。

    可连接多个远程镜像,我的xml配置文件中包含了公司私服镜像

    但是我点进url后发现500服务器错误,这有可能是其中一种原因

    下来我又配置了阿里的镜像

    复制代码
    1 <!-- 阿里云仓库 -->
    2         <mirror>
    3             <id>alimaven</id>
    4             <mirrorOf>central</mirrorOf>
    5             <name>aliyun maven</name>
    6             <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    7         </mirror>
    8     <mirror>
    复制代码

    后了解到你的电脑中会有两个maven仓库,一个是你自定义的全局maven仓库和settings.xml配置,另一个是你本机.m2问价夹中的maven仓库,考虑到此,我在IDEA中点击settings中maven全局设置

    maven home directory 、User settings file、Local repostory三个配置必须统一,假如用软件自带的maven home directory 、User settings file,则必须将本地仓库换为.m2文件底下的repostory仓库,如图:

     

    在maven下载失败期间产生了许多后缀为.lastupdated的文件,一般是下载失败后产生的文件,当这些文件存在时,maven并不回去自动下载jar包,附上批量删除.lastupdated问价的方法:

    windows系统下,cd到本地仓库目录下,运行命令(转载自CSDN博客)

     for /r %i in (*.lastUpdated) do del %i

    汇总,转载自IDEA中Maven依赖包下载不了的问题解决方案汇总

    这个依赖包下载不了的问题真的是很烦,之前一直把下载不上的依赖剪切再粘贴到pom.xml文件中,保存它就自动下载了,但是今天怎么剪切粘贴都没用,所以就花了点时间在网上各种搜解决方案,试了一些之后终于从根本上解决了问题,所以写个博客把解决这个问题的方案汇总一下!

    1. 先是对图上的两个位置一番狂点进行刷新,然并卵...

    于是又按照博客上的指示去寻找 Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Ignored Files 

    如下图:

    然而这个对我依然没有什么帮助,但还是要记录一下的,并感谢这位博主哥哥!!!

    原文地址: https://blog.csdn.net/qq_35981283/article/details/73928035

    2.之后我又找了一些关于配置的, Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing,如下图:

    然而...还是没有什么卵用...到了这一步我发现该设置的都设置好了,虽然这些设置并没有解决我的问题,但还是要记录一下的,说不定有人会因为设置问题导致依赖包下载不下来...

    3.重点来了,这次我又找到了一篇博客,彻底解决了我的问题. 右击Maven项目,操作如下图:

    点击Open'settings.xml' , 刚开始这个位置是Create 'settings.xml' ,打开之后添加在里面添加了镜像服务器:

    然后,我又按照最前面的方法进行Reimport,依赖包终于开始下载了!!! 内牛满面啊... 可能这个大家都设置过,但还是要记录一下的,毕竟实实在在的解决了我的问题,附一份代码:

    ========================耀眼的故意引起注意的分隔线========================

    (2020.04.09 补一下:评论区有大佬们讨论说url中用http不好使(就是下载不了,或者下载缓慢的问题),所以此处可以换成https进行尝试~)(这个有点重要)(看我一眼)(~~~~~)

    <mirrors>
    <mirror>
    <id>nexus</id>
    <name>internal nexus repository</name>
    <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
    <url>http://repo.maven.apache.org/maven2</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
    </mirrors>
    原文地址: https://blog.csdn.net/sky19891212/article/details/43924831

    真的是非常感谢这位博主大哥!!! 

    4..好不容易下载下来之后,发现右边报红了,我眼瞎了吗,眼瞎了吗,瞎了吗... 

    然后就去网上搜了一下,有两种解决方式:

        1.把pom.xml中对应的依赖先删除,然后刷新右侧,之后再把依赖粘贴到pom.xml中,再次刷新右侧就好了

        2.从本地仓库将对应的包删除掉,然后让maven重新下载

    原文地址: https://blog.csdn.net/u010003835/article/details/78480626

    也感谢这位博主哥哥!!!

    至此之后,我可能再也不用担心依赖包下载的问题了,十分开心...

    ========================华丽的分割线========================

    2020.04.09 补充:(汲取评论区中遇到的,且文章中并未涉及到的解决方法)

    1.Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Work offline

    评论区一大佬说了,这个尽量不要勾选,可以尝试修改此项解决问题。

    (哪个大佬呢,就是这个,欢迎光顾,万一发现啥宝藏文章岂不是赚翻了,传送门:https://me.csdn.net/qq_43384381)

    2. Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Maven home directory

    2019版的IDEA,要注意maven版本兼容问题,评论区另一个大佬(大佬专用传送门:https://me.csdn.net/stonennnn)说,2019.3版本的IDEA用3.6.1的maven兼容不了,换了最新的maven3.6.3好使。(maven各个版本可自行下载哟~)

    我最近刚换了2019.3版本的IDEA,默默看了一眼自己的maven版本:3.6.1

    (所以,实在没办法的可以尝试更换maven版本,我这边2019.3和maven3.6.1貌似挺般配…没出现什么异常。)

  • 相关阅读:
    Cognitive Radio Cognitive Network Simulator (NS3 based)
    RCU(Read-Copy Update)synchronize原理分析
    英雄黑客:一个试图提高物联网安全性的“义务警员”
    Android NDK放弃GCC,全面转向Clang
    Why is FreeBSD deprecating GCC in favor of Clang/LLVM?
    (Low Level Virtual Machine) LLVM 与 Clang介绍
    RMS谈GCC、LLVM和Copyleft
    LLVM和Clang背后的故事
    FEP: 测试 lineage, 获得 CPU, MEMORY 统计信息
    以wifi-example-sim.cc为例说明NS3统计数据模型
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/13227226.html
Copyright © 2011-2022 走看看