2012-01-24 9 views
5

Mavenリリースプラグインを使用してリリースしようとしていますが、SCM設定に問題があります。私はm2eclipseをインストールしたEclipseを使用しています。私たちはMercurialを使い、私のマシン(Win7)にTortoiseHgをインストールしました。私は、瓶を作成するテストプロジェクトを持っています。我々はプロジェクトのためにスーパーポームを利用するので、テストプロジェクトも同様です。私はスーパーポンポンでこれを設定している:私たちは私たちのSCMサーバーへのSSHMaven/Hudson/Mercurialでリリースする

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>my.group</groupId> 
    <artifactId>TestJar 
    <version>1.0-SNAPSHOT</version> 
    <parent>  
     <groupId>my.group</groupId> 
     <artifactId>super-pom</artifactId> 
     <version>1.0</version> 
    </parent> 
    <scm> 
     <connection> 
      scm:hg:ssh://our.scm.server:22//path/to/TestJarProject 
     </connection> 
     <developerConnection> 
      scm:hg:ssh://our.scm.server:22//path/to/TestJarProject 
     </developerConnection> 
    </scm> 
</project> 

注:

<build> 
    <plugins> 
     .... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-scm-plugin 
      <version>1.6</version> 
      <configuration> 
       <connectionType>connection</connectionType> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

私のテストプロジェクトのPOMは、次のようになります。私はこの中で私が遭遇している問題のいくつかを疑う。私はhttpを使っている例しか見つけられませんでした。私がリリースを実行すると

<servers> 
    ... 
    <server> 
     <id>our.scm.server</id> 
     <username>username</username> 
     <password>password</password> 
    </server> 
</servers> 

:リリースの準備:私のsettings.xmlファイルで

が、私はこの追加を実行し、TortoisePlinkダイアログがパスワードの入力を促すポップアップ表示されます。ダイアログボックスは "@ our.scm.serverのパスワード"を尋ねてきます。

サーバコンポーネントを追加することで予想されていたsettings.xmlファイルのユーザ名またはパスワードが使用されていないようです。それはすべきでしょうか?私はまた、接続URLに自分のユーザー名を追加しようとしている:

<connection> 
    scm:hg:ssh://[email protected]:22//path/to/TestJarProject 
</connection> 

が、まだ空のユーザー名のパスワードの入力を求めています。

QUESTION ONE

は、誰もが成功しMavenをリリースしながらのMercurialに接続するためにSSHを使用していますか?

私は最終的にはハドソンでビルドを行いたいので

は、私がリリースを行うにはハドソンのジョブを設定するが、それは、このエラーで失敗します。

[INFO] o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s) 
[INFO] o.h.m.e.h.MavenExecutionResultHandler - [1] org.apache.maven.lifecycle.\ 
    LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:\ 
    maven-release-plugin:2.0:prepare (default-cli) on project TestJar: Cannot \ 
    prepare the release because you have local modifications : 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/_maven.repositories:unknown] 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom:unknown] 
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom.sha1:unknown] 
... many, many more lines of this nature ..... 

QUESTION TWO

何ローカルの変更Mavenが出会うのですか?

プロジェクトはリポジトリから取得されているので、私が考えることができる唯一の変更は、pomファイルの更新(バージョンからのスナップショットの削除)です。しかし、Mavenは変更自体を行ったので、これについて不平を言ってはいけません。 khmarbaiseの提案を1として

UPDATE

は、私は私の親POMにこれを追加しました:は誰が正常に接続するためにSSHを使用していONE

<pluginManagement> 
    <plugins> 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.2.2</version> 
     </plugin> 
    </plugins> 
</pluginManagement> 
+0

まず親のpluginManagementセクションを実行し、少し古くなった2.0を使用しているため、より新しいリリースのmaven-release-pluginを設定してください...どのMavenバージョンを使用していますか?ハドソンは最新ですか?ハドソンのリリースプラグインを使用していますか? – khmarbaise

+0

Hudson 2.1.2とMaven 3(Hudsonにバンドルされています) – sdoca

+0

Hudsonなしでコマンドラインでリリースできるかどうか最初に確認しましたか? (プラグイン管理セクションを追加しましたか?) – khmarbaise

答えて

2

QUESTION MercuryはMavenをリリースしていますか?

答えは、Maven Release Pluginはhttpsでしか動作しないようです。私たちは、一般的に、このページの指示に従うことで、私たちのMercurialのサーバー上で作業HTTPSを得ることができました:Mavenのは、ローカルTWO

何の変更が遭遇している

https://www.mercurial-scm.org/wiki/HgWebDirStepByStep

QUESTION?

ローカルの変更は、ビルド時に作成される.mavenディレクトリです。私の.hgignoreファイルに.maven/*を追加することでビルドを完了できました。

0

これまでの経験から、私はssh接続のみを覚えています。はキーベースの認証で動作し、ユーザー名とパスワードでは動作しません。これは必ずしもリリースプラグインおよび/またはそのMercurialサポートに固有のものではありません。

EDIT:今日、Mercurialとリリースプラグインバージョン2.4.1でキーベースのsshアクセスを試してみましたが、これはうまく機能します。問題の原因の1つに、SCM URL形式があります。私の場合、それはです:

scm:hg:ssh://[email protected]/path 

だからあなたの質問への答えは一つである:はい、ではなく、ユーザー名/パスワード認証で。私は "ローカルな変更"の問題は発生しませんでしたが、私は自分の.hgignoreにターゲットを設定しています。

関連する問題