2011-10-22 5 views
1

私はMavenビルドを実行し、Artifactoryにファイルを格納しています。私が直面している1つの問題は、Artifactoryのバイナリを上書きする-snapshotバージョンを試してみるときです。 Mavenのビルド番号プラグインを使用しようとしましたが、問題が発生しました。私はこれに言及しました http://blog.codehangover.com/track-every-build-number-with-maven/Mavenのバイナリにビルド番号を付ける

以下は何を記述しましたか?

  1. masterpom.xmlを次の行で更新しました。私はMVN走ったとき、私は耳の内側に戦争をチェックしたときに今、私は

    以下
        <build> 
            <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName> 
           </build> 
    

として耳とwebprojectのPOMを更新し、クリーンインストールし、耳との戦争が発生したが、得た

  <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
        <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
        </execution> 
      </executions> 
        <configuration> 
         <doCheck>false</doCheck> 
         <doUpdate>false</doUpdate> 
         <format>${version}.{0,number}</format> 
         <items> 
          <item>buildNumber</item> 
         </items> 
        </configuration> 
     </plugin> 
  • 私はそれをwar-1.0-SNAPSHOT-null.warのようなものとして見つけています。私は戦争と耳がbuildNumberパラメータを取得できないと信じています。 buildNUmber.propertyファイルを正常に生成することができ、buildnumber:create pluginを実行して番号を増やすことができました。ここに私の質問があります

    1. 私はここで間違っています、なぜbuildNumberパラメータが選ばれていないのですか?
    2. また、バイナリバージョンスナップショットの形式でjarsを含むすべてのバイナリを生成したいとします。$ {buildNumber}。だから私はこれを更新するために各ファイルまたは他の方法のpomを更新する必要がありますか?
    3. また、Hudsonビルドを継続的インテグレーションに使用しており、Hudsonビルド番号で開発者ビルドを分割したいと考えています。ハドソンビルド後にbuildNumber.propertiesをチェックインしたくない場合は、これをどのように達成できますか?
  • 答えて

    1

    ユニークなスナップショットを取得するには、uniqueVersionフラグを使用します(James Lorenzen's Blogを参照)。 maven goal deploy:deploy-fileを使用すると、uniqueVersionフラグはデフォルトでtrueになります。私の会社では、以下の方針があります。リポジトリには「公式」スナップショットのみが移動します。 「公式」スナップショットは、私たちの参照システム(私たちのJenkins ciサーバ)上に構築されたスナップショットです。 Jenkinsにアーティファクトをアーカイブさせるので、スナップショットには一意の機能は必要ありません。私たちがJenkinsを使いたいなら、この方法でいつでも特定のバージョンに戻ることができます。ビルドが中断した場合、スナップショットはリポジトリにデプロイされません。

    2番目の質問には、私の理解は、すべてのpomファイルを更新する必要があるということです。しかし、それは一回の変更であるため、あまりにも大きな負担ではありません。

    私は3番目の質問を完全に理解していません(「...別個の開発者がHudson Build番号でビルドしています...」)。 Hudsonによって行われたビルドごとにビルド番号を追加する場合は、いくつかのオプションがあります。

    1. 展開中に文字列を分類子として追加できます。 Mavenはファイル名にartifactID-version-classifier.jarという分類子を追加します(my.company.calendar-0.0.1-Snapshot-Hudson.jarなど)。アーティファクトは、依存関係に分類子を追加することによって検索されます。

    2. あなたのmaven呼び出しに別のパラメータを追加してください - outputfilename($ {project.build。finalName}、maven docuを参照してください)

    のようなものにバージョン文字列を変更します
    関連する問題