maven re(如何制作maven repository镜像)

本文目录
- 如何制作maven repository镜像
- 怎么从 maven 的 repository 中删除自己安装的 jar 包
- maven repository怎么理解
- 如何解决Maven依赖本地仓库eclipse报错的问题
- eclipse maven global repositories下面什么都没有
- 关于maven中配置远程仓库的问题
- 在idea中的Settings下的maven下的Repositories问题
- maven repository 私人仓库怎么搭建
- maven的setting配置文件中mirror和repository的区别是什么
如何制作maven repository镜像
首先,进入到Maven的安装目录下的conf文件下,可以看到有个settings.xml文件。
0maven安装及maven环境变量配置
0maven下载|安装|安装教程
可以将settings.xml文件先备份下,然后打开修改下面内容,如下所示
如果还需要thirdparty仓库或多个仓库,还可以添加下图所示。
以上配置的都是Maven的镜像地址换成了OSChina的镜像地址。
在执行Maven命令时,还要安装一些插件包修改插件包的下载地址。
5
如果还需要修改Maven文件的默认保存位置,直接在setting文件中按下面修改。
《localRepository》D:/新路径《/localRepository》
怎么从 maven 的 repository 中删除自己安装的 jar 包
Maven项目来说,日常使用的多数第三方java库文件都可以从Maven的Central Repository中自动下载,但是如果我们需要的jar文件不在Central Repository中,那么我们就需要手动将自己下载的jar文件加入到Maven的local reposotory中了,此时我们需要向Maven提供用于识别jar文件(可能多个)的groupId, artifactId和version等信息。
我并不打算讲怎么将一个下载的jar库加入到local repository中,我们将自己建立一个jar库,比如我们有一个最简单的HelloWorld类HelloWorld.java:
package com.thoughtworks.davenkin;
public class HelloWorld
{
public void sayHello()
{
System.out.println(“Hello, World“);
}
}
我们希望将HelloWorld.java打包成jar文件安装在Maven的local repository中以便其它程序使用。
编译打包hello-world.jar后,为了符合Maven的规定,需要给hello-world.jar一个版本号,故将hello-world.jar改名为hello-world-1.0.jar,此后便可以用mvn来安装此包到Maven的local repository中了:
mvn install:install-file -Dfile=path/to/hello-world-1.0.jar -DgroupId=com.thoughtworks.davenkin -DartifactId=hello-world -Dversion=1.0 -Dpackaging=jar
其中,-Dfile选项应给出需要安装jar文件的路径,在Linux/Mac下,jar文件将被安装在以下目录:
~/.m2/repository/com/thoughtworks/davenkin/hello-world/1.0/hello-world-1.0.jar
现在,我们的hello-world-1.0.jar便可以被其它Maven项目所使用了,为此创建一个Maven工程:
mvn archetype:generate-DgroupId=com.thoughtworks.davenkin.demo -DartifactId=helloworld-demo -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
此时将在当前目录下自动创建helloworld-demo子目录,切换到helloworld-demo目录,删除已有的App.java,并创建自己的Main.java文件
rm src/main/java/com/thoughtworks/davenkin/demo/App.java
touch src/main/java/com/thoughtworks/davenkin/demo/Main.java
将以下内容加入到Main.java文件中:
package com.thoughtworks.davenkin.demo;
import com.thoughtworks.davenkin.HelloWorld;
public class Main
{
public static void main(String args)
{
new HelloWorld().sayHello();
}
}
接下来是最重要的一步,修改pom.xml文件以加入对HelloWorld类的依赖:
到现在,我们的例子便可以运行了,在工程根目录下(该例为hello-world-demo)输入以下命令:
mvn exec:java -Dexec.mainClass=“com.thoughtworks.davenkin.demo.Main“
在笔者的机器上输出为:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building demo 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] 》》》 exec-maven-plugin:1.2.1:java (default-cli) @ demo 》》》
[INFO]
[INFO] 《《《 exec-maven-plugin:1.2.1:java (default-cli) @ demo 《《《
[INFO]
[INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ demo ---
Hello, World
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.423s
[INFO] Finished at: Wed Feb 15 21:33:47 CST 2012
[INFO] Final Memory: 5M/81M
[INFO] ------------------------------------------------------------------------
以上高亮部分即为我们期望的程序输出,当然你也可以用传统的java命令来运行,此时需要将hello-world-1.0.jar加入到classpath中,输入:
java -cp ~/.m2/repository/com/thoughtworks/davenkin/hello-world/1.0/hello-world-1.0.jar:target/classes/ com.thoughtworks.davenkin.demo.Main
输出为:
Hello, World
maven repository怎么理解
简单点来说,repository就是个仓库。
maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。
本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。
当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。
如何解决Maven依赖本地仓库eclipse报错的问题
一、应用场景
为了使用maven强大的包依赖管理和项目管理功能,故在项目中使用maven2作为项目建构工具。
但是我的项目在内网构建,为了能使用maven2,只能使用本地仓库依赖策略。
但是,有时候明明本地仓库确确实实存在相应的依赖包,但是在eclipse环境下依然会报错,即:在pom.xml显示错误提示信息。
经过我的实践证明,可以通过如下方式解决。
二、示例讲解
以依赖commons-io-2.0.1为例讲解:
在pom.xml中配置:
《dependency》
《groupId》commons-io《/groupId》
《artifactId》commons-io《/artifactId》
《version》2.0.1《/version》
《/dependency》
三、解决方案
1、
首先,从其他可以在外网下载相应依赖包的地方下载好相应的依赖包到本地仓库,再将该本地仓库拷贝到项目相应位置,便于引用。
2、安装Maven2并进行相应配置,关于Maven2具体安装和配置,略过。
注意:在Maven2的配置文件setting.xml一定要修改如下属性:
《offline》true《/offline》
该属性配置默认为false,因为是在内网,无法到外网下载依赖包,所以一定要配置离线属性为true。
3、如果本地仓库确实存在该依赖包,且eclipse没有报错,那么在本地仓库中找到该依赖包所在的位置,相应目录下必定存在如下6个文件:
_maven.repositories
commons-io-2.0.1.jar
commons-io-2.0.1.jar.sha1
commons-io-2.0.1.pom
commons-io-2.0.1.pom.sha1
m2e-lastUpdated.properties
依赖配置正确且eclipse没有报错时依赖包目录下包含的文件
当然,如下载了源码的话,应该还包括如下2个文件:
commons-io-2.0.1-sources.jar
commons-io-2.0.1-sources.jar.sha1
所以,如果当本地仓库中确实存在相应的依赖jar包,但是在eclipse中依然报错的话,请进入到相应依赖包的目录位置,观察该目录下是否对应存在如图1所示的6个文件。
通常情况下,当在eclipse中报错的话,在依赖包目录下还存在一个“xxx.lastUpdated”文件。
如果确实存在“xxx.lastUpdated”文件的话,请先删除该文件。并确认是否存在如下2个文件:
_maven.repositories
m2e-lastUpdated.properties
通常在eclipse中报错的话,是不会存在这2个文件的,到别的依赖正确的jar包目录下去拷贝这2个文件到当前目录下,并修改相应内容:
(1)、 修改“_maven.repositories”内容:
#NOTE: This is an internal implementation file,
its format can be changed without prior notice.
#Wed Jul 10 09:16:30 CST
2013
${artifactId}-${version}-sources.jar》nexus=
${artifactId}-${version}.jar》central=
${artifactId}-${version}.pom》central=
${artifactId}-${version}.pom》nexus=
${artifactId}-${version}.jar》nexus=
如:commons-io-2.0.1依赖包目录下的_maven.repositories文件内容如下:
#NOTE: This is an internal implementation file,
its format can be changed without prior notice.
#Wed Jul 10 09:16:30 CST
2013
commons-io-2.0.1-sources.jar》nexus=
commons-io-2.0.1.jar》central=
commons-io-2.0.1.pom》central=
commons-io-2.0.1.pom》nexus=
commons-io-2.0.1.jar》nexus=
(2)、 m2e-lastUpdated.properties文件内容可以不用修改!
完成后,在eclipse中clean一下项目,并执行“Maven-》Update
Project...”,OK,问题解决!
eclipse maven global repositories下面什么都没有
说先说下repository是什么:repository是maven在本地的jar包库,项目中依赖的jar文件都是网上下载下来,放在本地库。今后,项目需要使用某个jar,如果本地库已经有了,maven就不会从网络下载了。
关于repository的路径,如果你用的win7以上系统,会在C盘你自己的用户下面有一个.m2文件夹,里面有一个settings.xml,这个就是你maven的全局配置文件。在文件中有一个节点:《localRepository/》,是用来指定repository的路径,配置下即可。比如:《localRepository》D:\Local-Repo《localRepository》
关于maven中配置远程仓库的问题
我们通常配置《repositories》
《mirror》添加镜像库,防止《repositories》主库网络超时,还可以从mirror处下载
在idea中的Settings下的maven下的Repositories问题
你本地的mvn配置文件指向的库也是在你本地吧,下面两个链接是远程库,变红应该是无法访问,你选中第一个在点击update就行
mvn库介绍
maven repository 私人仓库怎么搭建
方法:
1.基于artifactId准备路径,将artifactId连接到后面:org/testng/testng
2.使用version准备路径,将version连接到后面:org/testng/testng/5.8
3.将artifactId于version以分隔符连字号连接到后面:org/testng/testng/5.8/tesng-5.8
4.判断如果构件有classifier,就要在 第4项 后增加 分隔符连字号 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5
5.检查构件的extension,如果extension存在,则加上句点分隔符和extension,而extension是由packing决定的,org/testng/testng/5.8/tesng-5.8-jdk5.jar
- 6、基于groupId准备路径,将句点分隔符转成路径分隔符,就是将 “.“ 转换成 “/“ ; example: org.testng ---》org/testng
参考资料
Maven详解之仓库------本地仓库、远程仓库.研发管理[引用时间2017-12-28]
maven的setting配置文件中mirror和repository的区别是什么
repository就是个仓库。maven里有两种仓库,本地仓库和远程仓库。
mirror和repository
远程仓库相当于公共的仓库,大家都能看到。本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。你也可以把你做的东西上传到本地仓库给你本地自己用,或上传到远程仓库,供大家使用。
远程仓库可以在工程的pom.xml文件里指定,楼上两位已经列的很清楚了。如果没指定,默认就会把下面这地方做远程仓库,即默认会到

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








