文档章节

Maven的仓库和settings.xml配置文件

o
 osc_zoa3moe9
发布于 2019/12/07 15:11
字数 6860
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

<div class="htmledit_views" id="content_views"> <p>(尊重劳动成果,转载请注明出处:<a href="https://blog.csdn.net/qq_25827845/article/details/83549846" rel="nofollow">https://blog.csdn.net/qq_25827845/article/details/83549846</a>冷血之心的博客)</p>

<p>快速导航:</p>

<p><a href="https://blog.csdn.net/qq_25827845/article/details/78988909" rel="nofollow">Maven基础概念和安装配置教程</a></p>

<p><a href="https://blog.csdn.net/qq_25827845/article/details/83549846" rel="nofollow">Maven的仓库和settings.xml配置文件</a></p>

<p><a href="https://blog.csdn.net/qq_25827845/article/details/83628045" rel="nofollow">Maven的坐标与依赖</a></p>

<p><a href="https://blog.csdn.net/qq_25827845/article/details/83795622" rel="nofollow">Maven的生命周期和插件</a></p>

<p><a href="https://blog.csdn.net/qq_25827845/article/details/83867717" rel="nofollow">Maven的聚合与继承</a></p>

<p>&nbsp;</p>

<p id="main-toc"><strong>目录</strong></p>

<p id="Maven%E7%9A%84%E4%BB%93%E5%BA%93-toc" style="margin-left:0px;"><a href="#Maven%E7%9A%84%E4%BB%93%E5%BA%93" rel="nofollow">Maven的仓库</a></p>

<p id="%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93-toc" style="margin-left:40px;"><a href="#%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93" rel="nofollow">本地仓库</a></p>

<p id="%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93-toc" style="margin-left:40px;"><a href="#%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93" rel="nofollow">远程仓库</a></p>

<p id="%E7%A7%81%E6%9C%8D-toc" style="margin-left:80px;"><a href="#%E7%A7%81%E6%9C%8D" rel="nofollow">私服</a></p>

<p id="%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93-toc" style="margin-left:80px;"><a href="#%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93" rel="nofollow">中央仓库</a></p>

<p id="settings.xml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-toc" style="margin-left:0px;"><a href="#settings.xml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6" rel="nofollow">settings.xml配置文件</a></p>

<p id="%E6%80%BB%E7%BB%93%EF%BC%9A-toc" style="margin-left:0px;"><a href="#%E6%80%BB%E7%BB%93%EF%BC%9A" rel="nofollow">总结</a></p>

<hr id="hr-toc"><p>&nbsp; &nbsp; &nbsp; &nbsp;在Maven基础概念和安装配置一文中,我们简单学习了Maven是什么,安装包里边的各个文件夹都存放着哪些东西,并且进行了简单的安装配置。在本文中,我们将进一步学习了解何为Maven仓库以及Maven的配置文件settings.xml如何配置。</p>

<p>&nbsp;</p>

<h1 id="Maven%E7%9A%84%E4%BB%93%E5%BA%93">Maven的仓库</h1>

<p>&nbsp; &nbsp; &nbsp; &nbsp;Maven用来存储依赖和插件的一个统一的地方,称之为仓库,Maven仓库又分为本地仓库和远程仓库。远程仓库又分为私服和中央仓库等。</p>

<p>&nbsp;我们以一幅图来表示它们的关系:</p>

<p><img alt="" class="has" height="318" src="https://img-blog.csdnimg.cn/20181030221854883.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1ODI3ODQ1,size_16,color_FFFFFF,t_70" width="710"></p>

<h2 id="%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93">本地仓库</h2>

<p>&nbsp; &nbsp; &nbsp; &nbsp;就是maven在本地(我们的计算机上)存储构件(依赖的Jar包等)的仓库,默认是在用户的<strong>.m2/repository/</strong>目录下。需要注意的是刚开始在.m2/下边是没有这个repository/文件夹的,当我们在命令行中运行mvn命令后才会出现该文件夹,并且在该文件夹下存储我们从远程仓库下载的构件。</p>

<p><img alt="" class="has" height="213" src="https://img-blog.csdnimg.cn/20181030223650709.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1ODI3ODQ1,size_16,color_FFFFFF,t_70" width="827"></p>

<p>既然Maven默认在/.m2/repository/下存储依赖和构件,那么我们是不是可以改变自定义这个位置?</p>

<p>答案是肯定的,注意看图中的/.m2/settings.xml 该文件是maven的配置文件,我们可以在该文件中通过标签&lt;<strong>localRepository</strong>&gt;&lt;/<strong>localRepository</strong>&gt;来配置本地仓库的位置。(settings.xml文件是啥?其作用是啥?我们需要如何配置将在下边详细讲解)</p>

<h2 id="%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93">远程仓库</h2>

<p>&nbsp; &nbsp; &nbsp; 远程仓库又分为<strong>中央仓库</strong>,<strong>私服</strong>以及<strong>其它公共库</strong>,我们也借用一幅图来阐述它们之间的关系。</p>

<p><img alt="" class="has" height="644" src="https://img-blog.csdnimg.cn/20181030224729945.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1ODI3ODQ1,size_16,color_FFFFFF,t_70" width="818"></p>

<p>由图中可以看出,我们Maven用户是在和私服打交道,包括上传和下载构件,当私服满足不了我们的下载构件需求时,私服会和中央仓库或者其余公共仓库交互,将用户需要的构件缓存在私服仓库中。那么何为私服?</p>

<h3 id="%E7%A7%81%E6%9C%8D">私服</h3>

<p>&nbsp; &nbsp; &nbsp; &nbsp;私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。</p>

<p>局域网使用<strong>搭建maven私服的好处</strong>:</p>

<p>1.<strong>节省外网带宽</strong>:减少重复请求造成的外网带宽消耗,将大部分构件缓存在私服,用户和私服的交互走局域网。</p>

<p>2<strong>.加速Maven构件</strong>:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低,因为外网下载速度很慢。</p>

<p>3.<strong>部署第三方构件</strong>:有些构件无法从外部仓库获得的时候,可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用。</p>

<p>4.<strong>提高稳定性</strong>:避免当外网不稳定的时候,maven构建也变的不稳定的情况。</p>

<p>5.<strong>增强控制:</strong>在公司内部可以访问私服可以通过配置用户名和密码来增强权限控制。</p>

<p>5.<strong>降低中央仓库的负荷</strong>:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力</p>

<p>&nbsp;</p>

<h3 id="%E4%B8%AD%E5%A4%AE%E4%BB%93%E5%BA%93">中央仓库</h3>

<p>&nbsp; &nbsp; &nbsp; &nbsp;Maven提供了一个中央仓库,其地址为:http://repo.maven.apache.org/maven2 ,该仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。据统计,每个月中央仓库大概会接受全世界Java程序员大概1亿次访问,其重要性不言而喻。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;在上一节<a href="https://blog.csdn.net/qq_25827845/article/details/78988909" rel="nofollow">Maven基础概念和安装配置教程</a>&nbsp;中,我们提到了maven的超级pom也是一种约定,所有的maven项目的pom文件都继承于该超级pom。(超级pom文件位于你的安装目录/apache-maven-3.2.5/lib/maven-model-builder-3.2.5.jar包中,并且在org/apache/maven/model/pom-4.0.0.xml路径下)在超级Pom中,对于中央仓库进行了配置,如下所示:</p>

<p><img alt="" class="has" height="274" src="https://img-blog.csdnimg.cn/20181031212111548.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1ODI3ODQ1,size_16,color_FFFFFF,t_70" width="693"></p>

<p>注意看该配置中的标签<strong>&lt;snapshots&gt;&lt;/snapshots&gt;</strong>,该标签设置为false,表示我们不从该仓库中获取不稳定的SNAPSHOT版本的构件;其实还有一个<strong>&lt;releases&gt;&lt;/releases&gt;</strong>标签,表示我们是否从该仓库中获取稳定版本的构件;</p>

<p>一段比较完整的远程仓库的配置如下:</p>

<pre class="has"><code class="language-java hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">&lt;repositories&gt; </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;repository&gt; </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;id&gt;jboss&lt;/id&gt; </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;name&gt;JBoss Repository&lt;/name&gt; </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;url&gt;http:<span class="hljs-comment"><span class="hljs-comment">//repository.jboss.com/maven2/&lt;/url&gt; </span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;releases&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;updatePolicy&gt;daily&lt;/updatePolicy&gt;&lt;!-- never,always,interval n --&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">true</span></span><span class="hljs-comment">&lt;/enabled&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;checksumPolicy&gt;warn&lt;/checksumPolicy&gt;&lt;!-- fail,ignore --&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/releases&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;snapshots&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">false</span></span><span class="hljs-comment">&lt;/enabled&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/snapshots&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;layout&gt;</span><span class="hljs-keyword"><span class="hljs-comment">default</span></span><span class="hljs-comment">&lt;/layout&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/repository&gt; </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">&lt;/repositories&gt;</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre>

<p><strong>&lt;updatePolicy&gt;&lt;/updatePolicy&gt;</strong>标签:表示Maven从远程仓库检查更新的频率,&nbsp;默认值是daily ,表示每天都检查一次;never-从不检查;always-每次构建都检查更新;interval n-每隔n分支检查一次更新。</p>

<p><strong>&lt;checksumPolicy&gt;&lt;/checksumPolicy&gt;</strong>标签:表示maven检查和检验文件的策略,warn为默认值,还可以选择ignore和fail,表示当maven检查检验和文件失败之后应该采取的行动。</p>

<p>既然我们配置了远程仓库,那么是不是也需要在某个地方进行远程仓库的权限认证?否则谁都可以下载上传构件岂不是一件很麻烦的事?</p>

<p>答案当然也是肯定的,我们需要<strong>远程仓库的权限认证</strong>。我们可以在settings.xml配置文件中配置&lt;servers&gt;&lt;/servers&gt;来搞定</p>

<pre class="has"><code class="language-java hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">&lt;servers&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;server&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;id&gt;archiva.internal&lt;/id&gt; <span class="hljs-comment"><span class="hljs-comment">// release版本的用户名和密码</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;username&gt;admin&lt;/username&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;password&gt;pwdpwd&lt;/password&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;archiva.snapshots&lt;/id&gt; </span><span class="hljs-comment"><span class="hljs-comment">// snapshot版本的用户名和密码</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;username&gt;admin&lt;/username&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;password&gt;pwdpwd&lt;/password&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/servers&gt;</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre>

<p>需要注意的是:这里的&lt;id&gt;<strong>archiva.snapshots</strong>&lt;/id&gt;必须与POM中需要认证的repository元素的Id一致,这样maven才能知道我们的用户名和密码是在认证哪个仓库。</p>

<p>配置了远程仓库并且进行了仓库的权限认证,maven已经可以帮助我们自动下载所需的构件了,当我们准备把自己的<strong>构件上传</strong>到远程仓库供别人使用时,我们还需要使用<strong>&lt;distributionManagement&gt;&lt;/distributionManagement&gt;</strong>来搞定。</p>

<pre class="has"><code class="hljs xml"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">distributionManagement</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">repository</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">id</span></span></span><span class="hljs-tag">&gt;</span></span>archiva.internal<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">id</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">name</span></span></span><span class="hljs-tag">&gt;</span></span>Internal Release Repository<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">name</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">url</span></span></span><span class="hljs-tag">&gt;</span></span>http://nexus.d.xxx.net/nexus/content/repositories/releases/<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">url</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">repository</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">snapshotRepository</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">id</span></span></span><span class="hljs-tag">&gt;</span></span>archiva.snapshots<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">id</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">name</span></span></span><span class="hljs-tag">&gt;</span></span>Internal Snapshot Repository<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">name</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">url</span></span></span><span class="hljs-tag">&gt;</span></span>http://nexus.d.xxx.net/nexus/content/repositories/snapshots/<span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">url</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">snapshotRepository</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-tag"><span class="hljs-tag">&lt;/</span><span class="hljs-name"><span class="hljs-tag"><span class="hljs-name">distributionManagement</span></span></span><span class="hljs-tag">&gt;</span></span></div></div></li></ol></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre>

<p>配置了之后,我们可以通过mvn deploy将本地的构件发布到远程仓库中。</p>

<p>&nbsp;</p>

<h1 id="settings.xml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">settings.xml配置文件</h1>

<p style="margin-left:0in;"><span style="color:#000000;">&nbsp; &nbsp; &nbsp; &nbsp;当我们下载安装好</span><span style="color:#000000;">Maven</span><span style="color:#000000;">时,在其安装目录的</span><span style="color:#000000;">conf</span><span style="color:#000000;">下存在一个</span><span style="color:#000000;">settings.xml</span><span style="color:#000000;">的配置文件,这是一个全局的</span><span style="color:#000000;">maven</span><span style="color:#000000;">配置文件,为了不影响这台计算机上的其他用户,一般选择将该文件</span><span style="color:#000000;">copy</span><span style="color:#000000;">到 </span><span style="color:#000000;">~/.m2/</span><span style="color:#000000;">下边,作为一个用户层面的配置文件。</span></p>

<p style="margin-left:0in;"><span style="color:#000000;">settings.xml</span><span style="color:#000000;">文件中主要包含以下的元素:</span></p>

<p style="margin-left:0in;"><span style="color:#000000;"><strong>l</strong></span><span style="color:#000000;"><strong>ocalRepository</strong></span><span style="color:#000000;"><strong>:</strong></span><span style="color:#000000;">本地仓库的目录。默认是用户目录下面的</span><span style="color:#000000;">.m2/repository</span><span style="color:#000000;">目录。</span></p>

<p><span style="color:#000000;"><strong>interactiveMode</strong></span><span style="color:#000000;">:表示是否使用交互模式,默认是</span><span style="color:#000000;">true</span><span style="color:#000000;">;如果设为</span><span style="color:#000000;">false</span><span style="color:#000000;">,那么当</span><span style="color:#000000;">Maven</span><span style="color:#000000;">需要用户进行输入的时候,它会使用一个默认值。</span></p>

<p><span style="color:#000000;"><strong>offline</strong></span><span style="color:#000000;">:表示是否离线,默认是</span><span style="color:#000000;">false</span><span style="color:#000000;">。这个属性表示在</span><span style="color:#000000;">Maven</span><span style="color:#000000;">进行项目编译和部署等操作时是否允许</span><span style="color:#000000;">Maven</span><span style="color:#000000;">进行联网来下载所需要的信息。</span></p>

<p><span style="color:#000000;"><strong>m</strong></span><span style="color:#000000;"><strong>irrors</strong></span><span style="color:#000000;"><strong>:</strong></span><span style="color:#000000;">定义一系列的远程仓库的</span><span style="color:#000000;">镜像,用于缓解远程仓库的压力。</span></p>

<p><span style="color:#000000;"><strong>p</strong></span><span style="color:#000000;"><strong>rofiles</strong></span><span style="color:#000000;"><strong>:</strong></span><span style="color:#000000;">用于指定一系列的</span><span style="color:#000000;">profile</span><span style="color:#000000;">。</span></p>

<p><span style="color:#000000;"><strong>activeProfiles</strong>:指定当前正在活跃的profile。</span></p>

<p><span style="color:#000000;"><strong>s</strong></span><span style="color:#000000;"><strong>ervers</strong></span><span style="color:#000000;"><strong>:</strong></span><span style="color:#000000;">表示当需要连接到一个远程服务器的时候需要使用到的验证</span><span style="color:#000000;">方式</span><span style="color:#000000;">。</span></p>

<p>接下来我们给出一个settings.xml的简单的配置文件示例:</p>

<pre class="has"><code class="language-java hljs"><ol class="hljs-ln" style="width:964px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">&lt;?xml version=<span class="hljs-string"><span class="hljs-string">"1.0"</span></span> encoding=<span class="hljs-string"><span class="hljs-string">"UTF-8"</span></span>?&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">&lt;settings&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;mirrors&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;mirror&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;!--This sends everything <span class="hljs-keyword"><span class="hljs-keyword">else</span></span> to /<span class="hljs-keyword"><span class="hljs-keyword">public</span></span> --&gt;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> &lt;id&gt;nexus&lt;/id&gt; <span class="hljs-comment"><span class="hljs-comment">// 镜像id</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;mirrorOf&gt;*&lt;/mirrorOf&gt; </span><span class="hljs-comment"><span class="hljs-comment">// 表示代理所有仓库</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;url&gt;http:</span><span class="hljs-comment"><span class="hljs-comment">//nexus.d.xxx.net/nexus/content/groups/public&lt;/url&gt; // 该镜像的地址</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/mirror&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/mirrors&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;profiles&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;profile&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;development&lt;/id&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;repositories&gt; </span><span class="hljs-comment"><span class="hljs-comment">// 构件的仓库</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;repository&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;central&lt;/id&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;url&gt;http:</span><span class="hljs-comment"><span class="hljs-comment">//nexus&lt;/url&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;releases&gt;&lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">true</span></span><span class="hljs-comment">&lt;/enabled&gt;&lt;/releases&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;snapshots&gt;&lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">true</span></span><span class="hljs-comment">&lt;/enabled&gt;&lt;/snapshots&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/repository&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/repositories&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;pluginRepositories&gt; </span><span class="hljs-comment"><span class="hljs-comment">// 插件的仓库</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;pluginRepository&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;central&lt;/id&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;url&gt;http:</span><span class="hljs-comment"><span class="hljs-comment">//nexus&lt;/url&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;releases&gt;&lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">true</span></span><span class="hljs-comment">&lt;/enabled&gt;&lt;/releases&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;snapshots&gt;&lt;enabled&gt;</span><span class="hljs-keyword"><span class="hljs-comment">true</span></span><span class="hljs-comment">&lt;/enabled&gt;&lt;/snapshots&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/pluginRepository&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/pluginRepositories&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/profile&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/profiles&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;activeProfiles&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;activeProfile&gt;development&lt;/activeProfile&gt; </span><span class="hljs-comment"><span class="hljs-comment">// 对于所有的pom,上边定义的id=development的profile都是活跃状态的</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="34"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/activeProfiles&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="35"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;servers&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="37"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="38"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;archiva.internal&lt;/id&gt; </span><span class="hljs-comment"><span class="hljs-comment">// release版本的用户名和密码</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="39"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;username&gt;yangwenqiang&lt;/username&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="40"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;password&gt;pwdpwd&lt;/password&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="41"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="42"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="43"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;id&gt;archiva.snapshots&lt;/id&gt; </span><span class="hljs-comment"><span class="hljs-comment">// snapshot版本的用户名和密码</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="44"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;username&gt;yangwenqiang&lt;/username&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="45"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;password&gt;pwdpwd&lt;/password&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="46"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/server&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="47"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> &lt;/servers&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="48"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">&lt;/settings&gt;</span></div></div></li></ol></code><div class="hljs-button signin" data-title="登录后复制" onclick="hljs.signin(event)"></div></pre>

<p>下边我们重点说两个比较有用的配置:</p>

<p><strong>&lt;mirrors&gt;&lt;/mirrors&gt;:</strong>镜像,如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。说白了,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。在上边的示例中,我们使用&lt;url&gt;&lt;/url&gt;中配置的<a href="http://nexus.d.xxx.net/nexus/content/groups/public" rel="nofollow">http://nexus.d.xxx.net/nexus/content/groups/public</a>来代理所有的远程仓库,其实这个代理一般情况下是你们公司的内网搭建的私服,在局域网内,加快访问速度等作用。</p>

<p><span style="color:#000000;"><strong>profiles:&nbsp;</strong>可以配置构件和插件的远程仓库,并且可以通过&lt;id&gt;来配置多个profile,最后通过&lt;<strong>activeProfiles</strong>&gt;来指定当前处于活跃状态(即有效的)的profile配置是哪一个。</span></p>

<p>&nbsp;</p>

<h1 id="%E6%80%BB%E7%BB%93%EF%BC%9A">总结</h1>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 这篇文章我们简单了解了maven的仓库,以及如何配置远程仓库,包括私服镜像和远程仓库的认证等知识点。当我们真正入职某一家公司的时候,我想很重要的一件事就是对着身边的一个哥们说:“<span style="color:#f33b45;">Hi,老哥,把你的settings文件给我一份呗</span>”</p>

<p>&nbsp;</p>

<p>如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~</p>

<p>本群给大家提供一个学习交流的平台,内设菜鸟Java管理员一枚、精通算法的金牌讲师一枚、Android管理员一枚、蓝牙BlueTooth管理员一枚、Web前端管理一枚以及C#管理一枚。欢迎大家进来交流技术。<br> &nbsp;</p>

<p>&nbsp;</p> </div>

o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
系列(二):Win 8.1安装Maven 3

1、准备工作:JDK 1.7+ 安装Maven 3之前,先确定JDK已经安装并配置JAVAHOME环境变量,因为Maven会依赖JDK提供的很多jar包(注意:Maven 3.5.0要求JDK 1.7以上)。 参考: https://my.oschina...

翻船全靠浪
2015/07/01
25
0
android studio gradle国内代理设置

android studio在开始都各项目之前都会遇到 gradle 的同步,而在同步过程中很多依赖下载特别慢甚至出现无法现在的情况,有的时候等的时间特别长,甚至要一天,关键是等了大半天之后突然报错,...

osc_yd2orh02
2019/08/14
29
0
IntelliJ IDEA 配合 Maven 的一些技巧:Profiles

环境 IntelliJ IDEA 2017.1 Maven 3.3.9 Nexus 3.2.1 学习前提 了解 Maven 配置的基本用法 了解私有仓库,比如 nexus 的一些概念 强烈建议把 Maven 的 settings.xml 文件同时放在: 和 两个地...

osc_9dvtgsvd
2018/07/19
15
0
maven本地仓库配置文件

背景:在使用maven的过程中,感觉本地的jar包位置飘忽不定,归根结底是因为对maven的配置文件理解不清楚造成的。 在maven的安装包下面D:apache-maven-3.6.1conf有settings.xml文件,可以设置...

osc_n41kxg36
2019/07/09
2
0
Idea配合maven使用之profiles

一.问题描述 今天在做项目时遇到pom.xml 文件 中配置的dependency ,maven import/reimport 始终无法导入,如下图: 二.解决 idea 打开maven tools windows,发现profiles 只选了jdk1.8,勾选x...

糖咪啦
2019/09/11
1.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

使用命名管道承载gRPC

最近GRPC很火,感觉整RPC不用GRPC都快跟不上时髦了。 gRPC设计 gRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架。刚好需要使用一个的RPC应用系统,自然而然就盯上了它,但是它真能够解...

osc_nq69o22c
58分钟前
16
0
06-敏捷开发框架-apis 脚本库 引用位置无关性设计

动态引入技术的设计,对我们来说非常重要。 同时也说明动态语言的使用对我们来说也是非常重要。 没有动态语言的支撑,有些想法可能不容易实现,或者有替代方案,可能会花更大的代价。 前端开...

osc_5zg9z6t1
今天
21
0
(三)学习了解OrchardCore笔记——灵魂中间件ModularTenantContainerMiddleware的第一行①的模块部分

  了解到了OrchardCore主要由两个中间件(ModularTenantContainerMiddleware和ModularTenantRouterMiddleware)构成,下面开始了解ModularTenantContainerMiddleware中间件第一行代码。   ...

osc_kdarxvx0
今天
15
0
50Mn18Cr4V锻锻环件

电机无磁护环怎么锻性能才能《高高》?50Mn18Cr4V高锰无磁钢在变形温度为900~1 100℃、应变速率为0.1 ~10s-1条件下的热变形行为. 结果,VC第二相的应变诱导析出对50Mn18Cr4V的热变形行为产生...

无磁钢
今天
16
0
【遇见offer】一汽-大众实习生专场来啦!成长+学习+福利,一个也不能少~

在上次一汽-大众的社招直播之后,实习生的专场招聘也终于来啦! 针对2020年暑期,我们提供了非常多的实习岗位给大家选择。 如果你想得到大厂实习的宝贵经验,如果你想得到更快速的成长,如果...

osc_b88oux8w
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部