添加外部Maven添加jar到本地仓库库问题,怎么解决

\ Maven设置本地仓库及依赖包下载不全的解决方法
Maven设置本地仓库及依赖包下载不全的解决方法
这位童鞋很懒,什么也没有留下~~!
作者的热门手记
1、maven设置本地仓库的方法:在apache-maven-3.3.9-bin/conf/setting.xml中加入&localRepository&E:\m2\repository&/localRepository&
2、当你在pom.xml中加入坐标后,maven自动下载相应jar包,完成之后发现pom.xml内容没有报错但是就是有个红叉,应该就是有各别jar包缺失,可以在Maven Denpendencies右键build path 选择configure 里面就可以查看到miss的jar包
接下来可以到你本地仓库的文件夹中根据miss jar包的路径打开文件夹,删除里面.lastUpdated(我连同pom 、sha1后缀一起也都删除了。。)然后 右键项目maven 中的disable maven nature 然后再右击项目中configure中的 convert maven
接下来项目又会重新下载 如果这样重复几次还是jar包始终下不下来,就到相应的网络仓库中去下 比如http://repo.maven.apache.org/
去这个网站找需要的包 将其手动下载添加 然后再重复一下convert to maven
我鼓捣了两小时终于搞定。。
相关标签:
请登录后,发表评论
评论(Enter+Ctrl)
评论加载中...
评论加载中...
Copyright (C)
All Rights Reserved | 京ICP备 号-2maven本地仓库下载jar破损导致不能使用原因?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
maven本地仓库下载jar破损导致不能使用原因?
请教大家个问题,为什么我的maven项目pom引入jar包后,自动下载到maven仓库的jar文件都破损了,查看maven项目虽然引用了,但是仍然有红色的感叹号。
我有更好的答案
删除仓库中的目录,取消勾选maven的offline选项,执行一下maven install等命令,重新下载相关包
采纳率:45%
为您推荐:
其他类似问题
maven的相关知识
换一换
回答问题,赢新手礼包posts - 98,&
comments - 2,&
trackbacks - 0
什么是Maven仓库
在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永 远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如 SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二 进制文件方面并不出色。
Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖 JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等, 因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。
简言之,Maven仓库能帮助我们管理构件(主要是JAR)。
本地仓库 vs. 远程仓库
运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。
比如说,你的项目配置了junit-3.8的依赖,在你运行mvn test&的 时候,Maven需要使用junit-3.8的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程仓 库配置,然后逐个尝试这些远程仓库去下载junit-3.8的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果尝 试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。
Maven缺省的本地仓库地址为${user.home}/.m2/repository&。也就是说,一个用户会对应的拥有一个本地仓库。
你也可以自定义本地仓库的位置,修改${user.home}/.m2/settings.xml&:
&&settings&&&&
&&&&&localRepository&&D:\java\repository&/&localRepository&&&&
&/&settings&&
你还可以在运行时指定本地仓库位置:
mvn clean install -Dmaven.repo.local=/home/juven/myrepo/
还有一点需要理解的是,当我们运行install的时候,Maven实际上是将项目生成的构件安装到了本地仓库,也就是说,只有install了之后,其它项目才能使用此项目生成的构件。
了解了本地仓库,接着了解一下Maven缺省的远程仓库,即Maven中央仓库。
安装好Maven之后,我们可以建立一个简单的项目,配置一些简单的依赖,然后运行mvn clean install,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的 jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。
这个Maven中央仓库是在哪里定义的呢?在我的机器上,我安装了maven-2.0.10,我可以找到这个文件:${M2_HOME}/lib/maven-2.0.10-uber.jar&,打开该文件,能找到超级POM:\org\apache\maven\project\pom-4.0.0.xml&,它是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:
&&repositories&&&&
&&&&&repository&&&&
&&&&&&&id&&central&/&id&&&&
&&&&&&&name&&Maven&Repository&Switchboard&/&name&&&&
&&&&&&&layout&&default&/&layout&&&&
&&&&&&&url&&http://repo1.maven.org/maven2&/&url&&&&
&&&&&&&snapshots&&&&
&&&&&&&&&enabled&&false&/&enabled&&&&
&&&&&&/&snapshots&&&&
&&&&/&repository&&&&
&/&repositories&&
关于远程仓库的配置,下面的小节我会详细解释,这里我们只要知道,中央仓库的id为central,远程url地址为http://repo1.maven.org/maven2,它关闭了snapshot版本构件下载的支持。
在POM中配置远程仓库
前面我们看到超级POM配置了ID为central的远程仓库,我们可以在POM中配置其它的远程仓库。这样做的原因有很多,比如你有一个局域网的远程仓 库,使用该仓库能大大提高下载速度,继而提高构建速度,也有可能你依赖的一个jar在central中找不到,它只存在于某个特定的公共仓库,这样你也不 得不添加那个远程仓库的配置。
这里我配置一个远程仓库指向中央仓库的中国镜像:
&&project&&&&
&&&&&repositories&&&&
&&&&&&&repository&&&&
&&&&&&&&&id&&maven-net-cn&/&id&&&&
&&&&&&&&&name&&Maven&China&Mirror&/&name&&&&
&&&&&&&&&url&&/content/groups/public/&/&url&&&&
&&&&&&&&&releases&&&&
&&&&&&&&&&&enabled&&true&/&enabled&&&&
&&&&&&&&/&releases&&&&
&&&&&&&&&snapshots&&&&
&&&&&&&&&&&enabled&&false&/&enabled&&&&
&&&&&&&&/&snapshots&&&&
&&&&&&/&repository&&&&
&&&&/&repositories&&&&
&&&&&pluginRepositories&&&&
&&&&&&&pluginRepository&&&&
&&&&&&&&&id&&maven-net-cn&/&id&&&&
&&&&&&&&&name&&Maven&China&Mirror&/&name&&&&
&&&&&&&&&url&&/content/groups/public/&/&url&&&&
&&&&&&&&&releases&&&&
&&&&&&&&&&&enabled&&true&/&enabled&&&&
&&&&&&&&/&releases&&&&
&&&&&&&&&snapshots&&&&
&&&&&&&&&&&enabled&&false&/&enabled&&&&
&&&&&&&&/&snapshots&&&&&&&&
&&&&&&/&pluginRepository&&&&
&&&&/&pluginRepositories&&&&
&/&project&&
关于&repositories&的更详细的配置及相关解释,请参考:/books/maven-book/reference_zh/apas02s08.html。
至于&pluginRepositories&,这是配置Maven从什么地方下载插件构件(Maven的所有实际行为都由其插件完成)。该元素的内部配置和&repository&完全一样,不再解释。
在settings.xml中配置远程仓库
我们知道了如何在POM中配置远程仓库,但考虑这样的情况:在一个公司内部,同时进行这3个项目,而且以后随着这几个项目的结束,越来越多的项目会开始; 同时,公司内部建立一个Maven仓库。我们统一为所有这些项目配置该仓库,于是不得不为每个项目提供同样的配置。问题出现了,这是重复&!
其实我们可以做到只配置一次,在哪里配置呢?就是settings.xml。
不过事情没有那么简单,不是简单的将POM中的&repositories&及&pluginRepositories&元素复制到settings.xml中就可以,setting.xml不直接支持&这两个元素。但我们还是有一个并不复杂的解决方案,就是利用profile,如下:
&&settings&&&&
&&&&&profiles&&&&
&&&&&&&profile&&&&
&&&&&&&&&id&&dev&/&id&&&&
&&&&&&&&!--&repositories&and&pluginRepositories&here--&&&
&&&&&&/&profile&&&&
&&&&/&profiles&&&&
&&&&&activeProfiles&&&&
&&&&&&&activeProfile&&dev&/&activeProfile&&&&
&&&&/&activeProfiles&&&&
&/&settings&&
使用profile为settings.xml添加仓库提供了一种用户全局范围的仓库配置。
如果你的地理位置附近有一个速度更快的central镜像,或者你想覆盖central仓库配置,或者你想为所有POM使用唯一的一个远程仓库(这个远程仓库代理的所有必要的其它仓库),你可以使用settings.xml中的mirror配置。
以下的mirror配置用覆盖了Maven自带的central:
&&settings&&&&
&&&&&mirrors&&&&
&&&&&&&mirror&&&&
&&&&&&&&&id&&maven-net-cn&/&id&&&&
&&&&&&&&&name&&Maven&China&Mirror&/&name&&&&
&&&&&&&&&url&&/content/groups/public/&/&url&&&&
&&&&&&&&&mirrorOf&&central&/&mirrorOf&&&&
&&&&&&/&mirror&&&&
&&&&/&mirrors&&&&
&/&settings&&
&&settings&&&&
&&&&&mirrors&&&&
&&&&&&&mirror&&&&
&&&&&&&&&id&&my-org-repo&/&id&&&&
&&&&&&&&&name&&Repository&in&My&Orgnization&/&name&&&&
&&&&&&&&&url&&http://192.168.1.100/maven2&/&url&&&&
&&&&&&&&&mirrorOf&&*&/&mirrorOf&&&&
&&&&&&/&mirror&&&&
&&&&/&mirrors&&&&
&/&settings&&
关于更加高级的镜像配置,可以参考:http://maven.apache.org/guides/mini/guide-mirror-settings.html。
分发构件至远程仓库
mvn install&会将项目生成的构件安装到本地Maven仓库,mvn deploy&用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。
我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:
&&project&&&&&&
&&&...&&&&
&&&&&distributionManagement&&&&&&
&&&&&&&repository&&&&&&
&&&&&&&&&id&&nexus-releases&/&id&&&&&&
&&&&&&&&&name&&Nexus&Release&Repository&/&name&&&&&&
&&&&&&&&&url&&http://127.0.0.1:8080/nexus/content/repositories/releases/&/&url&&&&&&
&&&&&&/&repository&&&&&&
&&&&&&&snapshotRepository&&&&&&
&&&&&&&&&id&&nexus-snapshots&/&id&&&&&&
&&&&&&&&&name&&Nexus&Snapshot&Repository&/&name&&&&&&
&&&&&&&&&url&&http://127.0.0.1:8080/nexus/content/repositories/snapshots/&/&url&&&&&&
&&&&&&/&snapshotRepository&&&&&&
&&&&/&distributionManagement&&&&&&
&&&...&&&&
&/&project&&
一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:
&&settings&&&&&&
&&&...&&&&
&&&&&servers&&&&&&
&&&&&&&server&&&&&&
&&&&&&&&&id&&nexus-releases&/&id&&&&&&
&&&&&&&&&username&&admin&/&username&&&&&&
&&&&&&&&&password&&admin123&/&password&&&&&&
&&&&&&/&server&&&&&&
&&&&&&&server&&&&&&
&&&&&&&&&id&&nexus-snapshots&/&id&&&&&&
&&&&&&&&&username&&admin&/&username&&&&&&
&&&&&&&&&password&&admin123&/&password&&&&&&
&&&&&&/&server&&&&&&&&
&&&&/&servers&&&&&&
&&&...&&&&
&/&settings&&
本文介绍了Maven仓库,它是什么?本地仓库,远程仓库,中央仓库具体是指什么?并介绍了如何在POM中配置项目层次的仓库,在settings中配置用户层次的仓库,以及mirror。本文还介绍了如何安装构件到本地仓库,如何分发构件至仓库。
阅读(...) 评论()& 相关文章 &
maven安装到本地库时如何加入工程本地jar包
maven安装到本地仓库时,需要用到暂无仓库记录的jar包时,可以这样做: 方法一:安装到本地仓库,这种方法最好是别人也能访问的仓库。 1)
mvn install:install-file -Dfile=your_jar_dir\your_jar_file.jar -DgroupId=your_package -DartifactId=your_factId -Dversion=your_version -Dpackaging=jar 2)
注册: &dependency
Maven中引入本地jar包
&/project&
2. 将JAR包安装到本地仓库 官方介绍:链接地址 执行命令: D:\WorkSpace\cognos\helloworld\src\main\resources\lib&mvn install:install-file -
Dfile=postgresql-9.3.jar -DgroupId=org.postgresql -DartifactId=postgresql -Dvers
ion=9.3 -Dpackaging=jar 执行该命令后,Maven会将该JAR包部署到本地仓库中,这样在Maven中就可以正常使用了 但是其他的话,也需要执行以下mvn install命令才可以正常使用 3. 将本地lib发布为仓库 使用repository标签,这个暂未成功,明天尝试下。
Maven错误信息:Missing artifact jdk.tools:jdk.tools:jar:1.6
&groupId&jdk.tools&/groupId&
&artifactId&jdk.tools&/artifactId&
&version&1.6&/version&
&scope&system&/scope&
&systemPath&${JAVA_HOME}/lib/tools.jar&/systemPath& &/dependency& 详见Maven FAQ for adding dependencies to tools.jar 也可以在本地仓库中
在Maven中如何配置外部Jar
/introduction-to-dependency-mechanism.html#Dependency_Scope 看。
在上面的dependency里,我们声明了scope为system, 它使用起来和provided差不多,即此依赖由系统提供,但是与provided有点不同的是,它需要显式的使用systemPath指定lib所在的路径,如上systemPath。
最后看到的效果如上图,jms.jar被加到了工程的maven依赖里。用这种方法可以不需要预先把需要的jar安装在maven库下。
二、创建一个Project范围的库 以上的方法
【maven】两种方法解决本地第三方jar包引用问题
it with the following command: mvn install:install-file -Dfile=&path-to-file& -DpomFile=&path-to-pomfile&
上面这个方式,是知道jar也知道jar的pom文件,但我们在自己工程文件中,仍然像上面一样加入dependency的。 1.3
With version 2.5 of the maven-install-plugin it gets even better. If the JAR was built
Maven 项目怎么引用第三方jar包
项目中有一个安卓截图的功能,maven中没有对应的dependency,所以只有需要第三方jar包了。但是把jar包build path 后,再运行maven的build,却老是失败。 如下图: maven无法识别Eclipse的Build Path。 So 我们只有使用其他的方法了 在pom.xml文件中添加一个dependency: &span style="white-space:pre"& &/span&&dependency&
&groupId&com.android
maven中各种jar
&/classifier&&!--指定jdk版本--&
&/dependency& 2 maven加入本地jar &dependency&
&groupId&org.wltea&/groupId&
&artifactId&IKAnalyzer&/artifactId&
&version&2012_u6&/version&
&scope&system&/scope&
&systemPath&E:/repositories/IKAnalyzer2012_u6.jar&/systemPath&
&/dependency&
maven依赖本地非repository中的jar包
这样就可以添加dependency而不需要再将WEB-INF/lib目录下的jar包安装到本地库中了。 具体配置录下:
&dependency&
&groupId&org.apache&/groupId&
&artifactId&test&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&${basedir}/src/main/webapp/WEB-INF/lib/paypal_base.jar&/systemPath&
&/dependency&
在Maven中怎么配置外部Jar
与provided有点不同的是,它需要显式的使用systemPath指定lib所在的路径,如上systemPath。
最后看到的效果如上图,jms.jar被加到了工程的maven依赖里。用这种方法可以不需要预先把需要的jar安装在maven库下。
二、创建一个Project范围的库 以上的方法是从避免安装lib到maven库方向上实现。另一种方法就是则是从构造库的方向上考虑的:创建一个虚拟的本地库,让maven到这个本地库里去查找需要的lib。
步骤大致如下: 1. 构造虚拟Maven库
在Maven中怎么配置外部Jar
与provided有点不同的是,它需要显式的使用systemPath指定lib所在的路径,如上systemPath。
最后看到的效果如上图,jms.jar被加到了工程的maven依赖里。用这种方法可以不需要预先把需要的jar安装在maven库下。
二、创建一个Project范围的库 以上的方法是从避免安装lib到maven库方向上实现。另一种方法就是则是从构造库的方向上考虑的:创建一个虚拟的本地库,让maven到这个本地库里去查找需要的lib。
步骤大致如下: 1. 构造虚拟Maven库
maven实战(4)-- maven构建自己的jar到本地仓库中
在平时的开发中,经常需要用到自己以前开发的一个jar包,那么如何使用将自己开发的jar提交到本地仓库中,供其他的项目依赖呢?主要有三种方法: (1)使用mvn的构建命令:mvn clean install。
(针对自己编写的maven工程,自己编写了pom.xml文件) 解析:install其实是调用mvn的插件maven-install-plugin来完成提交工作的。 对于非自己的开发的jar包,如何做呢?见(2)(3) (2)使用mvn命令手动提交到本地仓库
本地jar包依赖和运行包
/1.0-SNAPSHOT.jar&/systemPath& &!--引入本地jar--&
&/dependency&
&/dependencies& 2打可运行jar包: 1.首先将maven搭建的工程打成jar 需要在将该工程所支持的类库打在一个包中(默认情况下,maven在做mvn pakage时,只是将项目编译打包到一个jar中,其他的类库则需要引用才行)。 在pom.xml中加入以下插件 &plugin&
&artifactId
MAVEN 编译打包测试 指定本地jar
转载自:链接地址 maven对于互联网开发,进行版本管理有着不可或缺的作用;
而经常开发的程序猿直接联调或者依赖未上线或deploy的版本,需要在本地编译打包通过,如果pom文件依赖了maven库里的,则会出现冲突;
那么怎样进行本地jar依赖打包编译呢?
提供3种方式:
第一种方式:更改pom文件:
将原来的pom依赖,更改为新的依赖,如下面代码,加systemPath和scope指定你文件的位置
&!-- &dependency
MAVEN 编译打包测试 指定本地jar
转载自:链接地址 maven对于互联网开发,进行版本管理有着不可或缺的作用;
而经常开发的程序猿直接联调或者依赖未上线或deploy的版本,需要在本地编译打包通过,如果pom文件依赖了maven库里的,则会出现冲突;
那么怎样进行本地jar依赖打包编译呢?
提供3种方式:
第一种方式:更改pom文件:
将原来的pom依赖,更改为新的依赖,如下面代码,加systemPath和scope指定你文件的位置
&!-- &dependency
maven如何手动添加依赖的jar文件到本地Maven仓库
&/dependencies&
&/project&
  第三步:打开CMD,进入到mylib文件夹,运行下面命令 mvn install:install-file -Dfile=IKAnalyzer3.2.8.jar -DgroupId=org.wltea.ik-analyzer -DartifactId=ik-analyzer -Dversion=3.2.8 -Dpackaging=jar 这样你就可以将IKAnalyzer3.2.8.jar安装到您Maven本地的库文件夹相应目录中。你可以根据
Maven项目中使用本地JAR包
在Maven项目中使用本地JAR包有两种方法: 1. 使用system scope 链接地址
&dependencies&
&dependency&
&groupId&org.richard&/groupId&
&artifactId&my-jar&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&${project.basedir
maven如何在pom文件里引用本地jar
有的时候 一些第三方jar并不提供maven仓库这种形式,在你下载了jar之后 你可以使用 如下方式来引用:
&dependency&
&groupId&org.wltea&/groupId&
&artifactId&IKAnalyzer&/artifactId&
&version&3.2.8&/version&
&scope&system&/scope&
&systemPath&D:/第三方/IKAnalyzer3.2.8.jar&/systemPath&
&/dependency&
maven中引用JDK中的tools.jar
一 概念 tools.jar是java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。 二 遇到问题 可见tools.jar是一个非常重要的jar包,那么我们要在maven中应用怎么办呢? 三 解决办法 在pom.xml中 &dependency&
&groupId&com.sun&/groupId&
&artifactId&tools&/artifactId&
&version&1.6&/version&
&scope&system&/scope&
&systemPath&${JAVA_HOME}/lib/tools.jar&/systemPath& &/dependency&
Missing artifact com.sun:tools:jar:1.5.0:system 解决方法
使用maven是有时候会有 Missing artifact com.sun:tools:jar:1.5.0:system错误提示 需要在依赖中加入 &dependency&
&groupId&com.sun&/groupId&
&artifactId&tools&/artifactId&
&version&1.5.0&/version&
&scope&system&/scope&
&systemPath&${JAVA_HOME}\lib\tools.jar&/systemPath
Application (EAR) Projects在8.5版本中暂不支持。 如何开始? 只需新建一个MyEclipse Web Projects项目,在新建的页面上打上maven的勾。 输入组号和标识号,项目建好以后,在项目上点击右键能多出来一个Maven4MyEclipse选项,在项目的根目录下能看到一个pom.xml文件 为项目添加依赖包 在项目上点右键,依次选择Maven4MyEclipse--&add dependency,输入包名称,maven将从中央库查找。比如输入一个logg,就能找到所
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";如何将jar包放入maven本地仓库_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何将jar包放入maven本地仓库
我有更好的答案
你将对应jar包的坐标加入到maven项目的.pom文件中,然后maven会自动下载对应的jar到本地的仓库中,下次你再引入此jar包的坐标时,maven会直接引用本地的。
采纳率:38%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包}

我要回帖

更多关于 添加jar包到本地仓库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信