1

モジュールの自動ビルドには Bamboo を使用し、ビルド ツールには maven を使用しています。正しく動作しますが、モジュールのバージョンを上げる必要がある場合があります (たとえば、1.0-SNAPSHOT から 1.1-SNAPSHOT に変更するなど)。

私は次のことを行います: 1) 1.0-SNAPSHOT バージョンを、同じディレクトリ構造の下にある私の svn リポジトリのタグ ルート ディレクトリにタグ付けします。これは、互換性の理由から行われます。2) タグ付けされたモジュールをビルドする Bamboo ビルド プランを作成します。3) トランクにあるモジュールのバージョンを上げます。

ここまでは順調ですね。しかし、クライアントのプロジェクトをビルドするときに、タグ付きモジュールが Maven からダウンロードされず (Bamboo から正しくビルドされていることがわかります)、タグの前に古い 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 に答える