1

我正在使用竹子来自动构建我们的模块,并使用 maven 来构建工具。它工作正常,但有时如果我需要增加模块的版本(例如从 1.0-SNAPSHOT 更改为 1.1-SNAPSHOT)

我做了以下事情:1)在我的svn存储库中标记1.0-SNAPSHOT版本在同一目录结构下,但在标记根目录中。这样做是出于兼容性原因。2) 创建竹子构建计划,构建标记模块。3)增加模块的版本,在trunk中。

到目前为止,一切都很好。但是有时当我构建客户的项目时,标记的模块不是从 maven 下载的(即使我可以看到它是用竹子正确构建的)并且它使用标记之前的旧 jar。此外,maven 并不总是下载最后一个 jar,我必须手动从 .m2 目录中删除它或更新模块并在我的机器上手动重建它(不使用离线模式)。这很痛苦,但作为开发人员,我可以做到这一点,但我们的项目也是由管理员构建的,他们不知道如何管理这个,他们有时会部署具有错误依赖项的项目,这会导致麻烦:)。

因此,如果有人知道如何解决此问题,请告诉我。

4

2 回答 2

3

看看你的settings.xml文件。你会发现这样的部分:

    <profile>
      <id>FooBar</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>nexus</id>  
          <!-- use a bogus URL as this gets overwritten by the mirror settings -->
          <url>http://central</url>
         <releases>
            <enabled>true</enabled>
             <updatePolicy>daily</updatePolicy>
         </releases>
          <snapshots>
            <enabled>true</enabled>
             <updatePolicy>always</updatePolicy>
         </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>nexus</id>
          <!-- use a bogus URL as this gets overwritten by the mirror settings -->
          <url>http://central</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>FooBar</activeProfile>
  </activeProfiles>

确保<updatePolicy>always</updatePolicy>每次都在您想下载工件的任何地方使用,而不是使用本地的。

于 2011-12-13T15:11:31.337 回答
2

mvn deploy -U在构建依赖于该模块的客户端应用程序时尝试。-U参数用于在构建依赖项目时检索最新构建的 SNAPSHOT 依赖项(不是指最新版本,而是最后构建的 SNAPSHOT 工件),在您的情况下可能是客户端应用程序。

于 2012-02-02T16:03:03.740 回答