当前位置: 首页 > news >正文

辽宁营商环境建设局网站网站接口需求

辽宁营商环境建设局网站,网站接口需求,小程序开发公司文案,工作感悟私服不是Maven的核心概念#xff0c;它仅仅是一种衍生出来的特殊的Maven仓库。通过建立自己的私服#xff0c;就可以降低中央仓库负荷、节省外网带宽、加速Maven构建、自己部署构件等#xff0c;从而高效地使用Maven。 有三种专门的Maven仓库管理软件可以用来帮助大家建立…私服不是Maven的核心概念它仅仅是一种衍生出来的特殊的Maven仓库。通过建立自己的私服就可以降低中央仓库负荷、节省外网带宽、加速Maven构建、自己部署构件等从而高效地使用Maven。 有三种专门的Maven仓库管理软件可以用来帮助大家建立私服Apache基金会的Archiva、JFrog的Artifactory和Sonatype的Nexus。其中Archiva是开源的而Artifactory和Nexus的核心也是开源的因此我们可以自由选择使用。事实上Nexus也是当前最流行的Maven仓库管理软件。 绍Nexus的主要功能并结合大量图片帮助大家快速地建立起自己的Maven私服。 1、Nexus简介 2005年12月Tamas Cservenak由于受不了匈牙利电信ADSL的低速度开始着手开发Proximity——一个很简单的Web应用。它可以代理并缓存Maven构件当Maven需要下载构件的时候就不需要反复依赖于ADSL。到2007年Sonatype邀请Tamas参与创建一个更酷的Maven仓库管理软件这就是后来的Nexus。 Nexus团队的成员来自世界各地它也从社区收到了大量反馈和帮助在写本书的时候Nexus刚发布1.7.2版本它也正健康快速地成长着。 Nexus分为开源版和专业版其中开源版本基于GPLv3许可证其特性足以满足大部分Maven用户的需要。以下是一些Nexus开源版本的特性 较小的内存占用最少仅为28MB基于ExtJS的友好界面基于Restlet的完全REST API支持代理仓库、宿主仓库和仓库组基于文件系统不需要数据库支持仓库索引和搜索支持从界面上传Maven构件细粒度的安全控制 Nexus专业版本是需要付费购买的除了开源版本的所有特性之外它主要包含一些企业安全控制、发布流程控制等需要的特性。感兴趣的可以访问该地址了解详情http://www.sonatype.com/products/nexus/community 2、安装Nexus Nexus是典型的Java Web应用它有两种安装包一种是包含Jetty容器的Bundle包另一种是不包含Web容器的war包。 2.1、下载Nexus 下载地址https://download.sonatype.com/nexus 然后将下载的文件上传到 Linux 系统我用的系统版本是CentOS7解压后即可使用不需要安装这里我放在/opt/nexus目录下。 需要注意Linux 必须提前安装 JDK。 2.2、启动Nexus 通过以下命令启动 # 启动 /opt/nexus/nexus-3.61.0-02/bin/nexus start # 查看状态 /opt/nexus/nexus-3.61.0-02/bin/nexus status #停止 /opt/nexus/nexus-3.61.0-02/bin/nexus stop当看到nexus is running的时候说明项目已经启动了默认端口号是8081。如果提示nexus is stopped则说明端口被占用了我们可以更改nexus的默认端口号。其配置在 /opt/nexus/nexus-3.61.0-02/etc目录下的nexus-default.properties 里面这里我改成了8090。 接下来就可以启动访问了 http://[Linux 服务器地址]:8090/ ps这里需要说明一下如果Nexus显示已经启动了但是访问不到有可能是端口的对外防火墙没有打开。 开启防火墙的步骤为 #首先确保firewalld已经启动 sudo systemctl start firewalld #确保firewalld被设置为开机启动 sudo systemctl enable firewalld #使用firewall-cmd打开一个端口。例如要打开TCP的8090端口 sudo firewall-cmd --zonepublic --add-port8090/tcp --permanent #重新加载防火墙以使更改生效 sudo firewall-cmd --reload #如果需要你也可以验证端口是否已经开放 sudo firewall-cmd --zonepublic --list-portsNexus首页如下第一次需要登录然后修改初始密码。 用户名admin 初始密码在/opt/nexus/sonatype-work/nexus3/admin.password 文件里3、Nexus的仓库与仓库组 作为Maven仓库服务软件仓库自然是Nexus中最重要的概念。Nexus包含了各种类型的仓库概念包括代理仓库、宿主仓库和仓库组等。每一种仓库都提供了丰富实用的配置参数方便用户根据需要进行定制。 3.1、Nexus内置的仓库 在具体介绍每一种类型的仓库之前先浏览一下Nexus内置的一些仓库。单击Nexus界面左边导航栏中的Repositories链接就能在界面右边看到如下图所示的内容 这个列表已经包含了所有类型的Nexus仓库。从中可以看到仓库有四种类型group仓库组、hosted宿主、proxy代理和virtual虚拟 仓库类型说明proxy某个远程仓库的代理group存放通过 Nexus 获取的第三方 jar 包hosted存放本团队其他开发人员部署到 Nexus 的 jar 包 每个仓库的格式为maven2或者maven1。此外仓库还有一个属性为Policy策略表示该仓库为发布Release版本仓库还是快照Snapshot版本仓库。最后两列的值为仓库的状态和路径。 下面解释一下各个仓库的用途 仓库名称说明maven-centralNexus 对 Maven 中央仓库的代理其策略为Release因此只会下载和缓存中央仓库中的发布版本构件。maven-publicNexus 默认创建供开发人员下载使用的组仓库maven-releasseNexus 默认创建供开发人员部署自己 jar 包的宿主仓库要求 releasse 版本maven-snapshotsNexus 默认创建供开发人员部署自己 jar 包的宿主仓库要求 snapshots 版本 其中 maven-public 相当于仓库总和默认把其他 3 个仓库加进来一起对外提供服务了另外如果有自己建的仓库也要加进该仓库才有用。 3.2、Nexus仓库分类的概念 为了帮助大家理解宿主仓库、代理仓库和仓库组的概念下图用更为直观的方式展现了它们的用途和区别 从上图中可以看到Maven可以直接从宿主仓库下载构件Maven也可以从代理仓库下载构件而代理仓库会间接地从远程仓库下载并缓存构件最后为了方便Maven可以从仓库组下载构件而仓库组没有实际内容图中用虚线表示它会转向其包含的宿主仓库或者代理仓库获得实际构件的内容。 3.3、创建仓库 初始状态下这几个仓库都没有内容 除了自带的仓库有时候我们需要单独创建自己的仓库按照默认创建的仓库类型来创建我们自己的仓库。 点击Create Repository 选择如下三种类型的仓库 1、创建Nexus宿主仓库 2、创建Nexus代理仓库 输入仓库名以及被代理仓库的URL这里我输入阿里云的仓库地址默认为中央仓库。 3、创建Nexus仓库组 配置中的ID、Name等信息这里不再赘述。需要注意的是仓库组没有Release和Snapshot的区别这不同于宿主仓库和代理仓库。在配置界面中用户可以非常直观地选择Nexus中的仓库将其聚合成一个虚拟的仓库组。注意仓库组所包含的仓库的顺序决定了仓库组遍历其所含仓库的次序因此最好将常用的仓库放在前面当用户从仓库组下载构件的时候就能够尽快地访问到包含构件的仓库。 上面的仓库创建好之后就可以在首页看到了 4、Nexus的索引与构件搜索 既然Nexus能够维护宿主仓库并代理缓存远程仓库如Maven中央库那么一个简单的需求就自然浮现出来了这就是搜索。Maven中央库有几十万构件供用户使用但有时我们往往仅仅知道某个关键字如Ehcache而不知道其确切的Maven坐标。Nexus通过维护仓库的索引来提供搜索功能能在很大程度上方便Maven用户定位构件坐标。 Sonatype提供的在线免费搜索服务其实用户可以很方便地自己维护一个Nexus实例并提供搜索服务。 为了能够搜索Maven中央库首先需要设置Nexus中的Maven Central代理仓库下载远程索引如下图所示。需要注意的是默认这个配置的值是关闭的。此外由于中央库的内容比较多因此其索引文件比较大Nexus下载该文件也需要比较长的时间大家还需要耐心等待。 可以想象到Nexus在后台运行了一个任务来下载中央仓库的索引幸运的是用户可以通过界面直接观察这一任务的状态。单击界面左边导航栏中的Scheduled Tasks链接后用户就能在界面的右边看到系统的调度任务如果Nexus正在下载中央仓库的索引用户就能看到下图所示的一个任务其状态为RUNNING。在索引下载完毕之后该任务就会消失。 有了索引用户即可搜索Maven构件了。Nexus界面左边导航栏有一个快捷搜索框在其中输入关键字后单击搜索按钮就能快速得到搜索结果如下图所示 除了简单的关键字搜索Nexus还提供了GAV搜索、类名搜索和校验和搜索等功能用户可以单击搜索页面左上角的下拉菜单选择高级搜索功能 GAV搜索GAV Search允许用户通过设置GroupId、ArtifactId和Version等信息来进行更有针对性的搜索。类名搜索Classname Search允许用户搜索包含某个Java类的构件。校验和搜索Checksum Search允许用户直接使用构件的校验和来搜索该构件。 当然用户也可以自己手动输入GroupId、ArtifactId等信息来进行GAV搜索。 有了中央仓库的索引用户不仅能够搜索构件还能够直接浏览中央仓库的内容。这便是Nexus的索引浏览功能。在Repositories页面中选择Browse Index选项卡就能看到中央仓库内容的树形结构如下图所示 5、配置Maven从Nexus下载构件 在POM中为Maven配置仓库和插件仓库。例如当需要为项目添加Nexus私服上的public仓库时可以按代码清单如下所示配置在POM中配置Nexus仓库 project …… repositories repository idnexus/id nameNexus/name urlhttp://localhost:8081/nexus/content/groups/public//url releasesenabledtrue/enabled/releasessnapshotsenabledtrue/enabled/snapshots /repository /repositories pluginRepositories pluginRepository idnexus/id nameNexus/name urlhttp://localhost:8081/nexus/content/groups/public//url releasesenabledtrue/enabled/releases snapshotsenabledtrue/enabled/snapshots /pluginRepository /pluginRepositories …… /project这样的配置只对当前Maven项目有效在实际应用中我们往往想要通过一次配置就能让本机所有的Maven项目都使用自己的Maven私服。这个时候大家可能会想到settings.xml文件该文件中的配置对所有本机Maven项目有效但是settings.xml并不支持直接配置repositories和pluginRepositories。所幸Maven还提供了Profile机制能让用户将仓库配置放到setting.xml中的Profile中如代码清单如下所示 在settings.xml中配置Nexus仓库 settings …… profiles profile idnexus/id repositories repository idnexus/id nameNexus/name urlhttp://localhost:8081/nexus/content/groups/public//url releasesenabledtrue/enabled/releases snapshotsenabledtrue/enabled/snapshots /repository /repositories pluginRepositories pluginRepository idnexus/id nameNexus/name urlhttp://localhost:8081/nexus/content/groups/public//url releases enabledtrue/enabled /releases snapshotsenabledtrue/enabled/snapshots /pluginRepository /pluginRepositories /profile /profiles activeProfiles activeProfilenexus/activeProfile /activeProfiles ……/settings该配置中使用了一个id为nexus的profile这个profile包含了相关的仓库配置同时配置中又使用activeProfile元素将nexus这个profile激活这样当执行Maven构建的时候激活的profile会将仓库配置应用到项目中去。 上面代码清单中的配置已经能让本机所有的Maven项目从Nexus私服下载构件。细心的人可能会注意到Maven除了从Nexus下载构件之外还会不时地访问中央仓库central我们希望的是所有Maven下载请求都仅仅通过Nexus以全面发挥私服的作用。这个时候就需要借助于Maven镜像配置了。可以创建一个匹配任何仓库的镜像镜像的地址为私服这样Maven对任何仓库的构件下载请求都会转到私服中。具体配置见代码清单如下所示配置镜像让Maven只使用私服 settings ……mirrors mirror idnexus/id mirrorOf*/mirrorOf urlhttp://localhost:8081/nexus/content/groups/public/url /mirror /mirrors profiles profile idnexus/id repositories repository idcentral/id urlhttp://central/url releases enabledtrue/enabled /releases snapshotsenabledtrue/enabled/snapshots /repository /repositoriespluginRepositories pluginRepository idcentral/id urlhttp://central/url releases enabledtrue/enabled /releasessnapshots enabledtrue/enabled /snapshots /pluginRepository /pluginRepositories /profile /profiles activeProfiles activeProfilenexus/activeProfile /activeProfiles …… /settings关于镜像、profile及profile激活的配置不再赘述这里需要解释的是仓库及插件仓库配置它们的id都为central也就是说覆盖了超级POM中央仓库的配置它们的url已无关紧要因为所有请求都会通过镜像访问私服地址。配置仓库及插件仓库的主要目的是开启对快照版本下载的支持当Maven需要下载发布版或快照版构件的时候它首先检查central看该类型的构件是否支持得到正面的回答之后再根据镜像匹配规则转而访问私服仓库地址。 6、部署构件至Nexus 如果只为代理外部公共仓库那么Nexus的代理仓库就已经能够完全满足需要了。对于另一类Nexus仓库——宿主仓库来说它们的主要作用是储存组织内部的或者一些无法从公共仓库中获得的第三方构件供大家下载使用。用户可以配置Maven自动部署构件至Nexus的宿主仓库也可以通过界面手动上传构件。 6.1、使用Maven部署构件至Nexus 日常开发生成的快照版本构件可以直接部署到Nexus中策略为Snapshot的宿主仓库中项目正式发布的构件则应该部署到Nexus中策略为Release的宿主仓库中。POM的配置方式下面的代码清单列出了一段典型的配置配置Maven部署构件至Nexus project …… distributionManagement repository idnexus-releases/id nameNexus Releases Repository/name urlhttp://localhost:8081/nexus/content/repositories/releases//url /repository snapshotRepository idnexus-snapshots/id nameNexus Snapshots Repository/name urlhttp://localhost:8081/nexus/content/repositories/snapshots//url /snapshotRepository /distributionManagement …… /projectNexus的仓库对于匿名用户是只读的。为了能够部署构件还需要在settings.xml中配置认证信息如代码清单如下所示 settings …… servers server idnexus-releases/id usernameadmin/username password*****/password /server server idnexus-snapshots/id usernameadmin/username password*****/password /server/servers …… /settings6.2、手动部署第三方构件至Nexus 某些Java Jar文件如Oracle的JDBC驱动由于许可证的因素它们无法公开地放在公共仓库中。此外还有大量的小型开源项目它们没有把自己的构件分发到中央仓库中也没有维护自己的仓库因此也无法从公共仓库获得。这个时候用户就需要将这类构件手动下载到本地然后通过Nexus的界面上传到私服中。 要上传第三方构件首先选择一个宿主仓库如3rd party然后在页面的下方选择Artifact Upload选项卡。在上传构件的时候Nexus要求用户确定其Maven坐标如果该构件是通过Maven构建的那么可以在GAV Definition下拉列表中选择From POM否则就选GAV Parameters。用户需要为该构件定义一个Maven坐标例如上传一个Oracle 11g的JDBC驱动则可以按下图所示输入坐标 定义好坐标之后单击Select Artifactsto Upload按扭从本机选择要上传的构件然后单击Add Artifact按钮将其加入到上传列表中。Nexus允许用户一次上传一个主构件和多个附属构件即Classifier。最后单击页面最下方的Upload Artifacts按钮将构件上传到仓库中。 7、Nexus的权限管理 在组织中使用Nexus的时候往往会有一些安全性需求例如希望只有管理员才能配置Nexus只有某些团队成员才能部署构件或者更细一些的要求例如每个项目都有自己的Nexus宿主仓库且只能部署项目构件至该仓库中。Nexus提供了全面的权限控制特性能让用户自由地根据需要配置Nexus用户、角色、权限等。 7.1、Nexus的访问控制模型 Nexus是基于权限Privilege做访问控制的服务器的每一个资源都有相应的权限来控制因此用户执行特定的操作时就必须拥有必要的权限。管理员必须以角色Role的方式将权限赋予Nexus用户。例如要访问Nexus界面就必须拥有Status-read这个权限而Nexus默认配置的角色UI:Basic UI Privileges就包含了这个权限再将这个角色分配给某个用户这个用户就能访问Nexus界面了。 用户可以被赋予一个或者多个角色角色可以包含一个或者多个权限角色还可以包含一个或者多个其他角色。 Nexus预定义了三个用户以admin登录后单击页面左边导航栏中的User链接就能看到所有已定义用户的列表如下图所示 这三个用户对应了三个权限级别 admin该用户拥有对Nexus服务的完全控制默认密码为admin123。deployment该用户能够访问Nexus浏览仓库内容搜索并且上传部署构件但是无法对Nexus进行任何配置默认密码为deployment123。anonymous该用户对应了所有未登录的匿名用户它们可以浏览仓库并进行搜索。 理解各个角色的意义对于权限管理至关重要。Nexus预定义的一些常用且重要的角色包括 UI:Basic UI Privileges包含了访问Nexus界面必须的最基本的权限。UI:Repository Browser包含了浏览仓库页面所需要的权限。UI:Search包含了访问快速搜索栏及搜索页面所需要的权限。Repo:All RepositoriesRead给予用户读取所有仓库内容的权限没有仓库的读权限用户将无法在仓库页面上看到实际的仓库内容也无法使用Maven从仓库下载构件。Repo:All RepositoriesFull Control给予用户完全控制所有仓库内容的权限。用户不仅可以浏览、下载构件还可以部署构件及删除仓库内容。Nexus包含了一个特殊的匿名用户角色Nexus Anonymous Role默认配置下没有登录的用户都会拥有该匿名角色的权限。这个匿名用户角色实际包含了上述所列角色中除Repo:All RepositoriesFull Control之外的所有角色所包含的权限。也就是说匿名用户可以访问基本的Nexus界面、浏览仓库内容及搜索构件。 除上述角色之外Nexus还预定义了很多其他角色它们往往都对应了一个Nexus的功能。例如UI:Logs and Config Files包含了访问系统日志文件及配置文件所需要的权限。 7.2、为项目分配独立的仓库 在组织内部如果所有项目都部署快照及发布版构件至同样的仓库就会存在潜在的冲突及安全问题我们不想让项目A的部署影响到项目B反之亦然。解决的方法就是为每个项目分配独立的仓库并且只将仓库的部署、修改和删除权限赋予该项目的成员其他用户只能读取、下载和搜索该仓库的内容。 假设项目名称为foo首先为该项目建立两个宿主仓库Foo Snapshots和Foo Releases分别用来部署快照构件和发布构件。 有了仓库之后就需要创建基于仓库的增、删、改、查权限。在Nexus中这样的权限是基于Repository Target建立的Repository Target实际上是一系列正则表达式在访问仓库某路径下内容的时候Nexus会将仓库路径与Repository Target的正则表达式一一匹配以检查权限是否正确。 单击左边导航栏中的Repository Targets链接就能看到下图所示的页面。图中选中了AllMaven2这一Repository Target在下方可以看到它包含了一个值为“.*”的正则表达式表示该Repository Target能够匹配仓库下的任何路径。 下一步就是基于该Repository Target和Foo Releases、Foo Snapshots两个仓库建立权限。单击页面左边导航栏中的Privileges链接进入权限页面然后单击Add按钮选择Repository Target Privilege。下图所示为创建对应于Foo Releases的权限。 上图中选择了Foo Releases仓库和AllMaven2表示创建匹配Foo Releases仓库任何路径的权限。单击Save按钮之后就能在权限列表中看到相应的增、删、改、查权限如下图所示 然后遵循同样的步骤为Foo Snapshots建立增、删、改、查权限。 下一步是创建一个包含上述权限的角色。单击导航栏中的Roles进入角色页面再单击页面上方的Add按钮并选择Nexus Role。下图所示为将之前建立的权限加入到该角色中。 角色创建完成之后根据需要将其分配给Foo项目的团队成员。这样其他团队的成员默认只能读取Foo Releases和Foo Snapshots的内容而拥有Foo Deployer角色的用户就可以执行部署构件等操作。 8、Nexus的调度任务 Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式例如每天、每周、手动等。调度任务会在适当的时候在后台运行。当然用户还是能够在界面观察它们的状态的。 要建立一个调度任务单击左边导航栏中的Scheduled Tasks链接然后在右边的界面上方单击Add按钮接着就能看到下图所示的界面。用户可以根据自己的需要选择任务类型并配置其运行方式。 Nexus包含了以下几种类型的调度任务 Download Indexes为代理仓库下载远程索引。Empty Trash清空Nexus的回收站一些操作如删除仓库文件实际是将文件移到了回收站中。Evict Unused Proxied Items From Repository Caches删除代理仓库中长期未被使用的构件缓存。Expire Repository Caches:Nexus为代理仓库维护了远程仓库的信息以避免不必要的网络流量该任务清空这些信息以强制Nexus去重新获取远程仓库的信息。Publish Indexes将仓库索引发布成可供m2eclipse和其他Nexus使用的格式。Purge Nexus Timeline删除Nexus的时间线文件该文件用于建立系统的RSS源。Rebuild Maven Metadata Files基于仓库内容重新创建仓库元数据文件maven-meta-data.xml同时重新创建每个文件的校验和md5和sha1。Reindex Repositories为仓库编纂索引。Remove Snapshots From Repository以可配置的方式删除仓库的快照构件。Synchronize Shadow Repository同步虚拟仓库的内容服务于Maven 1。 9、其他私服软件 Nexus不是唯一的Maven私服软件用户还有另外两个选择它们分别为Apache的Archiva与JFrog的Artifactory。 Archiva可能是历史最长的Maven私服软件它早在2005年就作为Apache Maven的一个子项目存在到2008年3月成为了Apache软件基金会的顶级项目。 大家可以访问http://archiva.apache.org以具体了解Archiva其站点提供了一些入门指南及邮件列表等信息。Archiva的下载地址为http://archiva.apache.org/download.html。 10、总结 建立并维护自己的私服是使用Maven必不可少的一步Maven私服软件有Nexus、Archiva和Artifactory它们都提供了开源的版本供用户下载。我们详细介绍了Nexus的安装和使用包括如何分辨各种类型的仓库、如何建立仓库索引和搜索构件、如何使用权限管理功能、如何使用调度任务功能等。除了这些功能之外Nexus还有很多有趣的特性如RSS源、日志浏览及配置等用户可以从友好的界面中学习使用。 除了Nexus本身我们还详述了如何配置Maven从私服下载构件以及如何发布构件至私服供他人使用。结合了Nexus的帮助之后再使用Maven时就会如虎添翼。
http://www.zqtcl.cn/news/369160/

相关文章:

  • 永久免费ppt下载网站有没有跟一起做网店一样的网站
  • 百川网站石家庄物流网站建设
  • 广州外贸网站设计外贸seo外贸推广外贸网站建设外贸网站建设
  • 网站 栏目建设银行网站用户名是什么
  • 服装类的网站建设中原免费网站建设
  • 网站开发培训班多少报名费安徽省建设工程信息网站
  • 旅游网站规划设计余姚网站公司
  • 广州市地铁站地图dede增加手机网站
  • dede 网站名称 空的网站开发行业新闻
  • 网站开发费用做账升级系统
  • 外贸公司网站制作价格网络公司的经营范围有哪些
  • 东莞三合一网站制作海南省生态文明村建设促进会网站
  • 邯郸做企业网站设计的公司福田祥菱m2
  • 手表拍卖网站动漫做暧视频网站
  • 福州网站定制公司如何做p2p网站
  • 微信外链网站开发嘉兴市城市建设门户网站
  • 在手机上如何制作网站qq注册网页入口
  • asp.net程序做的网站安全吗国内什么网站用asp.net
  • 凡科网做网站网站编辑知识
  • c#做交易网站taxonomy wordpress
  • 统一门户网站开发员给我用织梦做的网站
  • 网站上有声的文章是怎么做的深圳市住房和建设局网站和市住宅租赁管理服务中心
  • 如何对网站进行爬虫页面设计存在的问题
  • 知名网站建设加盟合作企业邮箱如何登录
  • asp net mvc做网站软文推广是什么
  • 张家口住房和城乡建设厅网站如何做点击赚钱的网站
  • 网站在建设中无法访问贵州碧江区住房和城乡建设局网站
  • 营销类网站 英文东莞正规的免费网站优化
  • 柳州网站推广最好的公司百度seo优化培训
  • 哈尔滨门户网站建站哪个网站做农产品