关于配置和引用Maven算法项目服务的踩坑总结:

2019-05-14  本文已影响0人  皮卡皮皮卡皮丘

[if !supportLists]1. [endif]之前通过mvn clean package -DskipTests打包,手动上传到nexus上,在新工程引用的时候不能自动下载该依赖所依赖的第三方包。

解决方案:直接在pom文件里配置发布地址,配置需要发布到的远程仓库地址,修改pom.xml文件,添加以下配置节点:

<distributionManagement>    

        <repository>      

                  <id>localhost</id>     

                   <url>http://localhost:8081/nexus/content/repositories/thirdparty/</url> 

         </repository>

</distributionManagement>

注意:在distributionManagement段中配置的地址,这里是采用nexus作为镜像服务器。如果这个镜像服务器需要用户名和密码,那么还需要在maven的settings.xml文件中做如下配置:

<server>

      <id>localhost</id>

      <username>admin</username>

      <password>admin123</password>

</server>

注意这里配置的server的id必须和pom文件中的distributionManagement对应仓库的id保持一致,maven在处理发布时会根据id查找用户名称和密码进行登录和文件的上传发布。

[if !supportLists]2. [endif]公司仓库地址上传成功,本地则不成功,部署到Nexus时出现的Failed to transfer file错误(400)

解决方案

关键的是Nexus中Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无法部署的问题在这个地方,方法是将其修改为“Allow Redeploy”就可以了

[if !supportLists]3. [endif]如果上传相同版本的包,则在新的工程使用时,需要删除本地之前下载过的包然后重新引入,不然不会自动去更新,所以迭代的时候需要修改版本号。

解决方案:

去查看文件目录:(C:\Users\Administrator\.m2\repository\)

对原始包进行删除。

附:

(1)在pom.xml中repositories标签的作用是用来配置maven项目的远程仓库。应用远程仓库的依赖时需要配置对应的仓库的地址去下载。

注:

<repositories>

       <repository>

            <id>远程仓库唯一标识符</id>

            <url>远程仓库的url</url>

       </repository>

</repositories>

(2)项目编译打包配置,需要修改pom.xml文件,添加以下配置节点:

           <plugins>           

                 <plugin>                

                    <artifactId>maven-dependency-plugin</artifactId>      

              </plugin>           

           </plugins>  

  </build>

上一篇下一篇

猜你喜欢

热点阅读