2014-11-24 57 views
0

从命令行我可以执行mvn clean install deploy没有任何额外的配置与maven-3.2.2。所以配置Maven设置毫无疑问。我的私人存储库http://maven.medicom.com.sa/maven2/releases可以通过maven访问,尽管启用了basic http认证。以下是setting.xml文件的快照。虽然我尝试了Jenkins Maven插件,但由于basic http身份验证,无法访问http://maven.medicom.com.sa/maven2/releases存储库。为什么Jenkins Maven由于HTTP基本验证而失败?

<settings xmlns="http://maven.apache.org/POM/4.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <servers> 
    <server> 
     <id>medicom</id> 
     <configuration> 
      <httpHeaders> 
       <property> 
        <name>Authorization</name> 
        <value>Basic bXE2ZX46bXVkaXMhcB==</value> 
       </property> 
      </httpHeaders> 
     </configuration> 
    </server> 
    <server> 
     <id>medicom.plugins</id> 
     <configuration> 
      <httpHeaders> 
       <property> 
        <name>Authorization</name> 
        <value>Basic bXE2ZX46bXVkaXMhcB==</value> 
       </property> 
      </httpHeaders> 
     </configuration> 
    </server> 
    </servers> 
    <profiles> 
     <profile> 
      <id>medicom.releases</id> 
      <activation> 
       <property> 
       <name>medicom.releases</name> 
       <value>!false</value> 
       </property> 
      </activation> 
      <repositories> 
       <repository> 
        <id>medicom</id> 
        <url>http://maven.medicom.com.sa/maven2/releases</url> 
        <releases> 
         <enabled>true</enabled> 
        </releases> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
       </repository> 
      </repositories> 
      <pluginRepositories> 
       <pluginRepository> 
        <id>medicom.plugins</id> 
        <url>http://maven.medicom.com.sa/maven2/releases</url> 
        <releases> 
         <enabled>true</enabled> 
        </releases> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
       </pluginRepository> 
      </pluginRepositories> 
     </profile> 
    </profiles> 
</settings> 
+0

,你一定詹金斯是使用相同的settings.xml文件当你在本地运行目标时你会这样做吗? – Ralf 2014-11-24 15:31:46

回答

0

詹金斯maven插件经由服务器配置无法basic http authentication。所以你必须跳过Jenkins CI的这种类型的配置。

<configuration> 
    <httpHeaders> 
     <property> 
      <name>Authorization</name> 
      <value>Basic bXE2ZX46bXVkaXMhcB==</value> 
     </property> 
    </httpHeaders> 
</configuration> 

相反,你应该使用的用户名和密码:

<username>maven</username> 
<password>password</password> 

如下注释行必须拆除:

<settings xmlns="http://maven.apache.org/POM/4.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <servers> 
    <server> 
     <id>medicom</id> 
     <!-- <configuration> 
      <httpHeaders> 
       <property> 
        <name>Authorization</name> 
        <value>Basic bXE2ZX46bXVkaXMhcB==</value> 
       </property> 
      </httpHeaders> 
     </configuration> --> 
     <username>maven</username> 
     <password>password</password> 
    </server> 
    <server> 
     <id>medicom.plugins</id> 
     <!-- <configuration> 
      <httpHeaders> 
       <property> 
        <name>Authorization</name> 
        <value>Basic bXE2ZX46bXVkaXMhcB==</value> 
       </property> 
      </httpHeaders> 
     </configuration> --> 
     <username>maven</username> 
     <password>password</password> 
    </server> 
    </servers> 
    <profiles> 
     <profile> 
      <id>medicom.releases</id> 
      <activation> 
       <property> 
       <name>medicom.releases</name> 
       <value>!false</value> 
       </property> 
      </activation> 
      <repositories> 
       <repository> 
        <id>medicom</id> 
        <url>http://maven.medicom.com.sa/maven2/releases</url> 
        <releases> 
         <enabled>true</enabled> 
        </releases> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
       </repository> 
      </repositories> 
      <pluginRepositories> 
       <pluginRepository> 
        <id>medicom.plugins</id> 
        <url>http://maven.medicom.com.sa/maven2/releases</url> 
        <releases> 
         <enabled>true</enabled> 
        </releases> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
       </pluginRepository> 
      </pluginRepositories> 
     </profile> 
    </profiles> 
</settings>