Maven 这一块之前用的稀里糊涂的,自己配置好了就一直没有动过。Maven下载下来以后,这是我安装的maven 的地址
可以看到这个配置文件。 下边的文件是用于配置公司私服的配置文件。两个配置文件是同等级别的,前者我配置的阿里的仓库,下载jar包去阿里下载。后者则是自己公司的。
对于这两个文件,在IDEA中这样配置,就可以指定某一个配置文件有效。
可以看到红框里边的,一般来说真的要求使用私服的话,私服里边的jar包是全的。不用来回切换。真的用到的没有的jar包就切换一下配置文件,就可以去阿里下载。前提是配置里边已经配置的阿里的地址。
下边再具体的说一下这个配置文件里边都有什么。
usr/local/maven
true
false
false
org.codehaus.mojo
myproxy
true
http://…
proxy.somewhere.com
8080
proxyuser
somepassword
*.google.com|ibiblio.org
server001
my_login
my_password
${usr.home}/.ssh/id_dsa
some_passphrase
664
775
planetmirror.com
PlanetMirror Australia
http://downloads.planetmirror.com/pub/maven2
central
test
false
1.7
Windows XP
Windows
x86
5.1.2600
mavenVersion
2.0.3
/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
usr/local/winner/jobs/maven-guide
codehausSnapshots
Codehaus Snapshots
false
always
warn
http://snapshots.maven.codehaus.org/maven2
default
env-test
上面的配置文件对各个节点的含义及作用都有注解。实际应用中,经常使用的是、、、有限几个节点,其他节点使用默认值足够应对大部分的应用场景。
节点 在仓库的配置一节中,已经对setting.xml中的常用节点做了详细的说明。在这里需要特别介绍一下的是节点的配置,profile是maven的一个重要特性。
节点包含了激活(activation),仓库(repositories),插件仓库(pluginRepositories)和属性(properties)共四个子元素元素。profile元素仅包含这四个元素是因为他们涉及到整个的构建系统,而不是个别的项目级别的POM配置。
profile可以让maven能够自动适应外部的环境变化,比如同一个项目,在linux下编译linux的版本,在win下编译win的版本等。一个项目可以设置多个profile,也可以在同一时间设置多个profile被激活(active)的。自动激活的 profile的条件可以是各种各样的设定条件,组合放置在activation节点中,也可以通过命令行直接指定。如果认为profile设置比较复杂,可以将所有的profiles内容移动到专门的 profiles.xml 文件中,不过记得和pom.xml放在一起。
activation节点是设置该profile在什么条件下会被激活,常见的条件有如下几个:
1. os
判断操作系统相关的参数,它包含如下可以自由组合的子节点元素
message - 规则失败之后显示的消息
arch - 匹配cpu结构,常见为x86
family - 匹配操作系统家族,常见的取值为:dos,mac,netware,os/2,unix,windows,win9x,os/400等
name - 匹配操作系统的名字
version - 匹配的操作系统版本号
display - 检测到操作系统之后显示的信息
2. jdk
检查jdk版本,可以用区间表示。
3. property
检查属性值,本节点可以包含name和value两个子节点。
4. file
检查文件相关内容,包含两个子节点:exists和missing,用于分别检查文件存在和不存在两种情况。
如果settings中的profile被激活,那么它的值将覆盖POM或者profiles.xml中的任何相等ID的profiles。
如果想要某个profile默认处于激活状态,可以在中将该profile的id放进去。这样,不论环境设置如何,其对应的 profile都会被激活。
关于setting配置文件的详细解析,参考文章:https://blog.csdn.net/u012152619/article/details/51485152