Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 快照和发布版本未在Maven本地存储库中获得更新_Java_Maven_Build_Nexus_Release Management - Fatal编程技术网

Java 快照和发布版本未在Maven本地存储库中获得更新

Java 快照和发布版本未在Maven本地存储库中获得更新,java,maven,build,nexus,release-management,Java,Maven,Build,Nexus,Release Management,我已经建立了一个Nexus存储库来连接两个独立的项目。我正在Nexus上成功地构建和部署发行版和快照版本,但是当我尝试在其他项目中使用maven update时,这些更改没有得到更新 所以我在一个项目中的一个_Project.jar中所做的是在nexus存储库中更新的 但是当我试图在B_项目中获得这个更新的jar时,我得到了maven本地存储库中的旧jar。现在,如果手动删除A_Project.jar,显然会得到更新的代码 为了实现快照的更新版本和发布版本,我尝试了以下方法 我在mvn干净构建中

我已经建立了一个Nexus存储库来连接两个独立的项目。我正在Nexus上成功地构建和部署发行版和快照版本,但是当我尝试在其他项目中使用maven update时,这些更改没有得到更新

所以我在一个项目中的一个_Project.jar中所做的是在nexus存储库中更新的

但是当我试图在B_项目中获得这个更新的jar时,我得到了maven本地存储库中的旧jar。现在,如果手动删除A_Project.jar,显然会得到更新的代码

为了实现快照的更新版本和发布版本,我尝试了以下方法

  • 我在mvn干净构建中使用了-U
  • 我在setting.xml和pom.xml中更改了更新策略,如下所示
  • 在settings.xml中

           <pluginRepository>
                <id>deployment</id>
                <name>Internal Nexus Repository</name>
                <url>http://server/nexus/content/groups/public/</url>
                <layout>default</layout>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <releases>
                    <updatePolicy>always</updatePolicy>
                </releases>
            </pluginRepository>
    
    
    部署
    内部Nexus存储库
    http://server/nexus/content/groups/public/
    违约
    真的
    总是
    
    在pom.xml中

    <repositories>
        <repository>
            <id>snapshots</id>
            <url>http://server/nexus/content/repositories/snapshots</url>
            <snapshots>
                <updatePolicy>always</updatePolicy>
            </snapshots>
            <releases>
                <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>
    
    
    快照
    http://server/nexus/content/repositories/snapshots
    总是
    总是
    

    请帮助我,因为这将成为我获取最新jar的一个重复过程。

    我看不到足够的settings.xml来说明发生了什么。您所展示的只是pluginRepository部分,它用于解析Maven插件,而不是工件

    我建议从标准settings.xml文件开始:

    您可能需要修改中央存储库定义,以便始终查找快照更新:

      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
    
    
    中心的
    http://central
    真的
    真的
    总是
    

    听起来您也在尝试重新发布相同的发布版本?这是一种糟糕的做法,发布应该被认为是不可变的(很多工具链都假设它们是不变的)。增加版本号以生成新版本。

    为了纠正rsedon,我在setting.xml和pom.xml中做了很多更改。为了更好的理解,我将在这里发布这篇文章。