maven的setting配置文件中mirror和repository的区别
简单点来说,repository就是个仓库。
maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。
本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。
当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。
远程仓库可以在工程的pom.xml文件里指定。
如果没指定,默认会到
maven repository怎么理解
简单点来说,repository就是个仓库。
maven里有两种仓库,本地仓库和远程仓库。远程仓库相当于公共的仓库,大家都能看到。
本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。
当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。
怎么从 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本地仓库的存储位置
eclipse中安装好maven2的插件后:
第一步:
默认会放在~/.m2/repository目录下 (“~”代表用户的目录,比如windows7下一般都是C:\Users\zz\.m2\repository),
但是一般不想放在C盘下,所以换个仓库位置(E:/mavenrepository)。
第二步:
修改配置文件,将下载的maven2中conf文件夹下的settings.xml复制到C:\Users\zz\.m2\repository(或者E:/mavenrepository)中,并将其中的
《!– localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
《localRepository》/path/to/local/repo《/localRepository》
–》
修改为:
《localRepository》E:/mavenrepository《/localRepository》
第三步:
修改Eclipse的MAVEN的存储位置:
点击Browser按钮,选择settings.xml文件,点击update Settings按钮,
上图代表成功转换仓库位置。
可以看到位置已经发生了变化。
MavenRepository的私人仓库怎么搭建
方法:
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 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]
怎么把自己的jar加到本地Maven的repository
有些jar在Maven的repository上找不到,必须要自己加,用这个命令
mvn clean install:install-file
-Dfile=/Users/admin/Downloads/ghost4j-0/ghost4j-0.4.5.jar
-DpomFile=/Users/admin/Downloads/ghost4j-0/ghost4j.pom
你就会看到这些log出现
Installing /Users/admin/Downloads/ghost4j-0/ghost4j-0.4.5.jar to
/Users/admin/.m2/repository/ghost4j/ghost4j/0.4.5/ghost4j-0.4.5.jar
[INFO] Installing /Users/admin/Downloads/ghost4j-0/ghost4j.pom to
/Users/admin/.m2/repository/ghost4j/ghost4j/0.4.5/ghost4j-0.4.5.pom
这样你就可以在你的project里的pom.xml里加上
《dependency》
《groupId》ghost4j《/groupId》
《artifactId》ghost4j《/artifactId》
《version》0.4.5《/version》
《/dependency》
怎么改maven的repository
从eclipse中增加了maven2的插件之后,maven默认的本地库的路径是${user}/.m2/repository/下,一般windows用户的操作系统都安装在C盘,所以这个目录下的jar包比较危险。我尝试从myeclipse-》preferences-》java-》build path-》classpath
maven的setting配置文件中mirror和repository的区别是什么
repository就是个仓库。maven里有两种仓库,本地仓库和远程仓库。
mirror和repository
远程仓库相当于公共的仓库,大家都能看到。本地仓库是你本地的一个山寨版,只有你看的到,主要起缓存作用。当你向仓库请求插件或依赖的时候,会先检查本地仓库里是否有。如果有则直接返回,否则会向远程仓库请求,并做缓存。你也可以把你做的东西上传到本地仓库给你本地自己用,或上传到远程仓库,供大家使用。
远程仓库可以在工程的pom.xml文件里指定,楼上两位已经列的很清楚了。如果没指定,默认就会把下面这地方做远程仓库,即默认会到