《Maven官方文档》选择可移植的Wagon提供者

原文链接   译者:carvendy

选择可移植的Wagon提供者

默认,Maven使用java.net.URLConnectionHttpURLConnection)类提供使用JDK接入仓库使用HTTP/HTTPS协议。不行地,支持这个实现由确定的bug,Maven使用这可能发现不能链接服务端并需要一些配置。一个奇怪的行为例包含着行包装授权头Base64值,当密码很长和使用缓存优先可以授权连接同样的服务端。

Maven 2.2.0 尝试修改这问题通过Wagon实现基于Apache HttpClient。不幸地,很快地HttpClient不支持NTLM(至少,version 2),影响意味着用户在代理服务器在NTLMv2后不能使用Maven 2.2.0。

希望地,解决这些,Maven 2.2.1将支持指定你想使用的Wagon提供者和给定的协议在构建过程中。从role-hint组件为了Wagon,提供者名字将被附加到协议使用的格式==<protocol>-<provider>==。

Maven 2.2.1,两种方式指定Wagon提供者应该使用:命令行,或者==<server>配置部分在settings.xml==。

命令行配置

从命令指定Wagon提供者,简单地使用== -Dmaven.wagon.provider.<protocol>=<provider-name>== 命令选择,想这样:

mvn -Dmaven.wagon.provider.http=httpclient clean install

指示Maven使用HttpClient基于Wagon实现为了连接HTTP仓库。

setting.xml配置

指定Wagon提供者使用的特殊服务,修改你的settings.xml 文件加入==<wagonProvider>配置到你的==<server>==实体,像下面这样:

<settings>
  [...]
  <servers>
    <server>
      <id>central</id>
      <configuration>
        <wagonProvider>httpclient</wagonProvider>
        [...]
      </configuration>
    </server>

可用的Wagon提供者

Maven 2.2.1提供者提供两种给HTTP/HTTPS Wagons;lightweight == 和httpclient==。如果你加入新的HTTP Wagon实现通过构建的拓展,你将需要确定拓展绑定Wagon组件 role-hints从==<protocol>-<provider>==为了允许用户可以指定值可移植的Wagon提供者。作为例子,HttpClient HTTP Wagon组件定义如下:

<component>
  <role>org.apache.maven.wagon.Wagon</role>
  <role-hint>http-httpclient</role-hint>
  <implementation>org.apache.maven.wagon.providers.http.HttpWagon</implementation>
  <instantiation-strategy>per-lookup</instantiation-strategy>
</component>

注意:默认HTTP/HTTPS Wagon提供者是lightweight

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/99852.html

(0)
上一篇 2021年8月21日 18:27
下一篇 2021年8月21日 18:28

相关推荐

发表回复

登录后才能评论