欢迎大家来到IT世界,在知识的湖畔探索吧!
Maven – Settings.xml
settings.xml定义了许多配置用来控制maven的执行。但并不绑定与任何独立的项目。
有两个路径放置settings.xml
Maven 默认配置: ${maven.home}/conf/settings.xml
User默认配置:${user.home}/.m2/settings.xml
User配置优先级高于Maven
settings.xml可配置项:
<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 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>
欢迎大家来到IT世界,在知识的湖畔探索吧!
环境变量或者系统参数可以被引用到settings.xml。 eg: ${user.home} ${env.HOME}
配置项详情
localRepository
本地仓库, 远程下载下来的jar包会放置于该目录
interactiveMode
交互模式,该配置会决定当maven需要输入的时候是否会提示用户,若设置为false,则会使用合理的默认值。
offline
当构建系统需要在离线模式的时候,该配置会起到作用。
Plugin groups
该元素包含一系列pluginGroup元素, 每个包含groupid。当一个插件被使用且没提供相应的groupid的时候,该项的元素会被使用到。这个列表默认包含org.apache.maven.plugins org.codehaus.mojo
欢迎大家来到IT世界,在知识的湖畔探索吧!<pluginGroups> <pluginGroup>org.eclipse.jetty</pluginGroup> </pluginGroups> mvn jetty:run
Servers
下载jar包的仓库用户名和密码被存储在该项。
<servers> <server> <id>server001</id> <username>my_login</username> <password>my_password</password> <privateKey>${user.home}/.ssh/id_dsa</privateKey> <passphrase>some_passphrase</passphrase> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> <configuration></configuration> </server> </servers>
id: 与server中的id相对应
username,password: 服务器的登录账号和密码
privateKey,passphrase:密钥相关
filePermissions,directoryPermissions:文件及文件夹权限
Mirrors
镜像定义
欢迎大家来到IT世界,在知识的湖畔探索吧!<mirrors> <mirror> <id>planetmirror.com</id> <name>PlanetMirror Australia</name> <url>http://downloads.planetmirror.com/pub/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
id,name: 镜像的唯一标识符和友好名字, id和Servers节点对应。
url: 镜像的URL。通过该地址访问仓库
mirrorOf: 是镜像中仓库的id。
Proxy
<proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts> </proxy> </proxies>
id: proxy的唯一标识符
active: 该代理是否激活
protocol,host,port: 代理的协议、地址、端口
username,password: 用户名以及密码
nonProxyHosts:不需要被代理的地址列表
Profiles
profile元素是pom.xml profile的缩略版。若profile在settings中是激活的,它的值会在POM中被替代。
Activation
定义了profile被激活的条件
<profiles> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> <jdk>1.5</jdk> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <property> <name>mavenVersion</name> <value>2.0.3</value> </property> <file> <exists>${basedir}/file2.properties</exists> <missing>${basedir}/file1.properties</missing> </file> </activation> ... </profile> </profiles>
Properties
proerties是占位符,使用${}来获取。总共有5种形式
- env.x 表示环境变量
- project.x 表示project元素下的值
- settings.x 表示settings中的配置
- ${java.x} java系统变量
- x 定义在<properties / >下的属性
Repositories
定义仓库相关信息
<repositories> <repository> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> <url>http://snapshots.maven.codehaus.org/maven2</url> <layout>default</layout> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>myPluginRepo</id> <name>My Plugins repo</name> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>https://maven-central-eu....com/maven2/</url> </pluginRepository> </pluginRepositories>
releases,snapshots分别表示不同的版本
checksumpolicy: 校验和策略 ignore fail warn
Active Profile
指定激活的profile
<activeProfiles> <activeProfile>env-test</activeProfile> </activeProfiles>
与profile的id对应
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/63437.html