如何在idea中设置该项目独立的本地仓库和maven设置
1、在你想存放仓库(repository)的目录下创建repository(仓库)文件夹,和setting.xml设置文件夹。我这次为了方便知道这个仓库是独属于这个项目的,所以就建在了该项目的目录下。
创建方式如下图:
2、打开setting.xml文件,配置maven信息。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups />
<proxies />
<servers />
<localRepository>D:\ideaProjects\svn\test_spring_cloud\repository</localRepository>
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>google-maven-central</id>
<name>Google Maven Central</name>
<url>https://maven-central.storage.googleapis.com
</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- אҫӖࠢ՚אںքб -->
<!--
<mirror>
<id>maven.net.cn</id>
<name>oneof the central mirrors in china</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
-->
<mirror>
<id>nexus-bailing</id>
<mirrorOf>central</mirrorOf>
<name>nexus-bailing repository</name>
<url>http://10.67.78.31:8081/repository/bailingRep-group/</url>
</mirror>
</mirrors>
</settings>
这里面配置的有比较全的或内镜像,可以按照喜好选取(最后一个是公司的镜像)
其中第一个配置localRepository标签时需要修改的,这里面的目录要修改成repository仓库的目录。这样就把配置文件和仓库地址映射起来了。
3、配置idea,使项目、maven和setting文件映射起来
打开idea按下快捷键ctrl+alt+s打开设置面板
搜索maven
按照图示配置:
其中第一行是maven程序安装的地址
第二行是我们需要映射的setting文件地址,第三行会自动换成setting同级目录下的repository文件,所以就不用管了。
这样这个项目就通过idea进行了maven,setting,仓库直接独立的映射了。该项目以后就会根据这个配置和仓库运行。
maven默认仓库和自己设置的独立仓库的设置
当我们在需要手动下载jar包并需要导入本地仓库时,就要用到maven默认仓库,因为导入的jar包只会进入默认仓库。导入的方式下面将。
那么如何设置现在项目使用的maven仓库时默认的仓库呢?
首先进入maven的安装目录下的conf文件夹下,如图:
在这里面修改setting文件中的仓库地址,就是把默认的仓库地址给修改了,以后在进行手动导入jar包进入目标仓库,就要先把默认仓库修改为目标仓库地址。
手动下载jar包并导入进本地仓库
1、先根据上文设置好默认仓库
2、根据idea的maven提示起冲突的详细jar包名记录下来
3、去网上手动下载该jar包
4、启用管理员角色运行cmd
5、输入命令
mvn install:install-file
-Dfile=D:\jarTest\spring-cloud-netflix-eureka-server-1.3.0.RC1.jar
-DgroupId=org.springframework.cloud
-DartifactId=spring-cloud-starter-eureka-server
-Dversion=1.3.0.RC1
-Dpackaging=jar
-DgeneratePom=true
注意:
在cmd中输入时每行的代码在复制进去时要有空格(每行直接的代码拼接时有几个空格就行)
其中
-Dfile 为你下载好的jar包所存在的路径
-DgroupId 为groupId
-DartifactId 为artifactId
-Dversion 为版本号
-Dpackaging 为导入格式,是jar包就写jar
6、如果cmd运行后表示成功,可以去仓库看一下,如果导入进去了就是成功了。
7、进入idea看jar包还有没有报错(有时需要重启一下idea才会消失)
进阶
项目依赖
如果使用的项目是有依赖关系的,比如manager管理项目和sysUser用户端项目使用公用的common项目提供的service。
那么首先你要在pom文件中引入common的jar包,表示依赖common项目。
在你的程序能成功跑通之后,要编译打包上线。你在package commom项目后,再去package manager项目时原本信心满满的以为要成功。但是会发现package manager竟然会报错,而且你的项目时正常的。这时候你就会比较无语了。
因为你package manager项目时是使用pom的jar包引入依赖的,它肯定回去寻找maven仓库中的commom jar包,而你并没有把common项目打入maven仓库,只是package在idea上显示了jar包。所以它并找不到这个commom项目。但是程序跑起来是会动态编译所有子项目的,就不去寻找maven仓库的jar包了,所以程序可以跑起来,但是单独打包会报错。
那么如何打包manager呢?首先你要将最新的commom项目打入maven仓库。maven也提供了简便的命令,就是install。install比packge更高级,它在打包好项目后还要安装项目,也就是打入maven仓库。所以要现在packge manager之前install它所依赖的common项目。