wordpress打开网站打不开,php如何做局域网的网站建设,珠海软件公司排名,深圳摇号申请注册一、仓库
1、关系
我们依赖的外部服务是需要有地方进行存储的#xff0c;而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。 #xff08;1#xff09;本地仓库 当项目在本地编译或运行时#xff0c;直接加载本地的依赖服务无疑是最快的。默…一、仓库
1、关系
我们依赖的外部服务是需要有地方进行存储的而存储的地方就称之为仓库。其中仓库又分为本地仓库、中央仓库、镜像仓库、私服。 1本地仓库 当项目在本地编译或运行时直接加载本地的依赖服务无疑是最快的。默认情况下不管在Window还是Linux下每个用户在自己用户目录下都有一个路径名为.m2/repository/的仓库目录。
而原始的本地仓库是为空的因此maven需要知道一个网络上的仓库在本地仓库不存在时前往下载网络上的仓库也就是远程仓库。
2中央仓库 当maven未配置时会默认请求maven的中央仓库中央仓库包含了这个世界上绝大多数流行的开源java构件以及源码、作者信息、SCM,信息、许可证信息等每个月这里都会接受全世界java程序员大概1亿次的访问它对全世界java开发者的贡献由此可见一斑。
但是由于最常见的例如网络原因等国外的中央仓库使用起来并不顺利因此就有了下载地址为国内的中央仓库也就是镜像仓库。
3镜像仓库 总结来说镜像仓库就是将国外的中心仓库复制一份到国内这样一来下载速度以及访问速度都将很快。
4私服 一般来说中央仓库或者镜像仓库都能满足我们的需求但是当我们在公司内合作开发代码时可能因为系统保密性原因有一些其他同事开发的外部依赖只希望能够被本公司的人使用而如果上传到镜像仓库则保密性就不复存在了。因此私服最主要的功能时存储一些公司内部不希望被公开的依赖服务。
2、mirror和repository区别
1仓库repository
简单点来说repository就是个仓库。maven里有两种仓库本地仓库和远程仓库。远程仓库相当于公共的仓库大家都能看到。本地仓库是你本地的一个山寨版只有你看的到主要起缓存作用。当你向仓库请求插件或依赖的时候会先检查本地仓库里是否有。如果有则直接返回否则会向远程仓库请求并做缓存。你也可以把你做的东西上传到本地仓库给你本地自己用或上传到远程仓库供大家使用。 internal repository是指在局域网内部搭建的repository它跟central repository, jboss repository等的区别仅仅在于其URL是一个内部网址。
远程仓库可以在工程的pom.xml文件里指定。如果没指定默认就会把下面这地方做远程仓库即默认会到 http://repo1.maven.org/maven2 这个地方去请求插件和依赖包。
repository snapshots enabledfalse/enabled /snapshots idcentral/id nameMaven Repository Switchboard/name urlhttp://repo1.maven.org/maven2/url
/repository2镜像
镜像是仓库的镜子保存了被镜像仓库的所有的内容,主要针对远程仓库而言。配置mirror的目的一般是出于网速考虑。如果仓库X可以提供仓库Y存储的所有内容那么就可以认为X是Y的一个镜像。换句话说任何一个可以从仓库Y获得的构件都能够从它的镜像中获取。举个例子http://maven.NET.cn/content/groups/public/ 是中央仓库 http://repo1.maven.org/maven2/ 在中国的镜像由于地理位置的因素该镜像往往能够提供比中央仓库更快的服务。
id的值为central表示该配置为中央仓库的镜像任何对于中央仓库的请求都会转至该镜像用户也可以使用同样的方法配置其他仓库的镜像。
关于镜像的一个更为常见的用法是结合私服。由于私服可以代理任何外部的公共仓库(包括中央仓库)因此对于组织内部的Maven用户来说使用一个私服地址就等于使用了所有需要的外部仓库这可以将配置集中到私服从而简化Maven本身的配置。在这种情况下任何需要的构件都可以从私服获得私服就是所有仓库的镜像。这时可以配置这样的一个镜像如例
settings...mirrorsmirroridinternal-repository/idnameInternal Repository Manager/nameurlhttp://192.168.1.100/maven2/urlmirrorOf*/mirrorOf/mirror/mirrors...
/settings该例中的值为星号表示该配置是所有Maven仓库的镜像任何对于远程仓库的请求都会被转至http://192.168.1.100/maven2/。
如果该镜像仓库需要认证则配置一个Id为internal-repository的即可。
二、全局settings、用户setting、pom的区别
1全局 settings.xml 是 maven 的全局配置文件一般位于${maven.home}/conf/settings.xml即maven文件夹下的conf中。
2用户 setting是maven的用户配置文件一般位于${user.home}/.m2/settings.xml即每位用户都有一份配置文件。
3pom.xml 文件是项目配置文件一般位于项目根目录下或子目录下。
配置优先级从高到低pom.xml 本地 settings 全局 settings如果这些文件同时存在在应用配置时会合并它们的内容如果有重复的配置优先级高的配置会覆盖优先级低的。
一般我们只需关注全局settings和pom即可。
三、全局settings配置文件
1、概览
settings xmlnshttp://maven.apache.org/SETTINGS/1.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.xsd!-- 该值表示构建系统本地仓库的路径默认值~/.m2/repository如localRepositoryD:\repo/localRepository --localRepository/!--作用表示maven是否需要和用户交互以获得输入如果maven需要和用户交互以获得输入则设置成true反之则应为false。默认为true。--interactiveMode/!--作用maven是否需要使用plugin-registry.xml文件来管理插件版本。如果需要让maven使用文件~/.m2/plugin-registry.xml来管理插件版本则设为true。默认为false。--usePluginRegistry/!--作用表示maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行则为true默认为false。当由于网络设置原因或者安全因素构建服务器不能连接远程仓库的时候该配置就十分有用。--offline/!--作用当插件的组织idgroupId没有显式提供时供搜寻插件组织IdgroupId的列表。该元素包含一个pluginGroup元素列表每个子元素包含了一个组织IdgroupId。当我们使用某个插件并且没有在命令行为其提供组织IdgroupId的时候Maven就会使用该列表。默认情况下该列表包含了org.apache.maven.plugins和org.codehaus.mojo。pluginGroupspluginGroupplugin的组织IdgroupId:org.codehaus.mojo/pluginGroup/pluginGroups-- pluginGroups/!-- 下面几个标签详细介绍 --servers/mirrors/proxies/profiles/activeProfiles/
/settings2、servers 标签
2.1、作用
一般仓库的下载和部署是在pom.xml文件中的repositories和distributionManagement元素中定义的。然而一般类似用户名、密码有些仓库访问是需要安全认证的等信息不应该在pom.xml文件中配置这些信息可以配置在settings.xml中。
2.2、使用
serversserver!-- server的id不是用户登录的id该id与distributionManagement中repository元素的id相匹配 --idserverId/id!-- 鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码 --usernameusername/usernamepasswordpassword/password!-- 鉴权时使用的私钥位置 --privateKey${usr.home}/.ssh/id_dsa/privateKey!-- 鉴权时使用的私钥密码 --passphrasepassphrase/passphrase!-- 文件被创建时的权限 --filePermissions664/filePermissions!-- 目录被创建时的权限 --directoryPermissions775/directoryPermissions/server
/servers2.3、demo
1pom配置
repositoriesrepositoryidmvn-releases/idnamegroup Releases Repository/nameurlhttps://xxx.xx//urlreleasesenabledtrue/enabled/releasessnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidmvn-snapshots/idnameyour company edu Snapshots Repository/nameurlhttps://xxx.xx//urlreleasesenabledfalse/enabled/releasessnapshotsenabledtrue/enabled/snapshots/repositoryrepositoryidmvn-repo/idnamemvn-repo/nameurlhttps://depend.your company.com/artifactory/mvn-repo//url/repository/repositoriesdistributionManagementrepositoryidmvn-releases/idnameyour company edu Releases Repository/nameurlhttps://xxx.xx//url/repositorysnapshotRepositoryidmvn-snapshots/idnameyour company edu Snapshots Repository/nameurlhttps://xxx.xx//url/snapshotRepository/distributionManagement
2全局settiing配置 serversserveridmvn-repo/idusernamezhangsan/usernamepasswordabcdefg/password/serverserveridmvn-snapshots/idusernamezhahgsan/usernamepasswordabcdefg/password/serverserveridmvn-releases/idusernamezhahgsan/usernamepasswordabcdefg/password/serverserveridmvn-mirror/idusernamezhahgsan/usernamepasswordabcdefg/password/server/servers
3、mirrors 标签
3.1、作用
用来配置相应的镜像仓库。如果仓库X可以提供仓库Y存储的所有内容那么就可以认为X是Y的一个镜像。用过Maven的都知道国外的中央仓库因为网络原因用起来太慢了所以选择一个国内的镜像就很有必要推荐国内的阿里云镜像。
3.2、使用
mirrorsmirror!-- 该镜像的唯一标识符 --idmirrorId/id!-- 镜像名称 --namename/name!-- 该镜像的URL构建系统会优先考虑使用该URL而非使用默认的服务器URL --urlurl/url!-- 被镜像的服务器的id。例如如果我们要设置了一个Maven中央仓库http://repo.maven.apache.org/maven2/的镜像就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 --mirrorOfcentral/mirrorOf/mirror
/mirrors3.3、参数
1id与name用来标识唯一的仓库
2url为镜像仓库地址
3mirrorOf用来匹配当请求什么仓库依赖时使用该镜像。选项有
mirrorOf*mirrorOf:匹配所有远程仓库。mirrorOfexternal:*mirrorOf:匹配所有远程仓库使用localhost的除外使用file://协议的除外。也就是说匹配所有不在本机上的远程仓库。mirrorOfrepo1,repo2mirrorOf:匹配仓库repo1h和repo2使用逗号分隔多个远程仓库。mirrorOf*,!repo1mirrorOf:匹配所有远程仓库repo1除外使用感叹号将仓库从匹配中排除。
注意事项
1由于镜像仓库完全屏蔽了被镜像仓库当镜像仓库不稳定或者停止服务的时候Maven仍将无法访问被镜像仓库因而将无法下载构件。
2maven 读取mirror 配置是 从上往下读取的因此谨慎配置mirrorOf*mirrorOf因为如果第一个镜像仓库配置了如此标志那么如果该仓库即使不存在对应依赖也不会向下游查询。
3.4、demo mirrorsmirror idmvn-mirror/id mirrorOfcentra/mirrorOf namemvn-mirror/name urlhttps://depend.yourcompany.com/artifactory/mvn-repo//url/mirrormirroridalimaven/idmirrorOfcentral/mirrorOfnamealiyun maven/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//url/mirror/mirrors
4、profiles标签
4.1、作用
根据环境参数来调整构建配置的列表。
4.2、元素
它包含了id、activation、repositories、pluginRepositories和 properties元素。这里的profile元素只包含这五个子元素是因为这里只关心构建系统这个整体这正是settings.xml文件的角色定位而非单独的项目对象模型设置。如果一个settings.xml中的profile被激活它的值会覆盖任何其它定义在pom.xml中带有相同id的profile。
1activation 作用自动触发profile的条件逻辑。
如pom.xml中的profile一样profile的作用在于它能够在某些特定的环境中自动使用某些特定的值这些环境通过activation元素指定。
activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id。profile也可以通过在命令行使用-P标记和逗号分隔的列表来显式的激活如-P test。注在maven工程的pom.xml所在目录下执行mvn help:active-profiles命令可以查看中央仓储的profile是否在工程中生效。
2properties
demo指定java版本号
profileidjdk-1.8/idactivationactiveByDefaulttrue/activeByDefaultjdk1.8/jdk/activationpropertiesmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.compilerVersion1.8/maven.compiler.compilerVersion/properties/profile
4.3、使用
profilesprofileidtest/id !-- profile的唯一标识 --activation / !-- 自动触发profile的条件逻辑 -- properties / !-- 扩展属性列表 -- repositories / !-- 远程仓库列表 -- pluginRepositories / !-- 插件仓库列表 --/profile
/profiles4.4、demo profilesprofileidmvn-repo/idrepositoriesrepositoryidmvn-repo/idurlhttps://depend.yourcompany.com/artifactory/mvn-repo//urlreleasesenabledtrue/enabledupdatePolicyalways/updatePolicy/releasessnapshotsenabledtrue/enabledupdatePolicyalways/updatePolicy/snapshots/repository/repositories/profile/profiles