1

Perforceと統合して、Mavenリリースプラグインを機能させようとしています。私はついに昨日どこかに行き、なんとか走ることができました:

mvn release:prepare

そして、多くのバージョンと新しい作業スナップショットを指定するように求められました。プラグインと統合をテストしたばかりなので、すべてのサブプロジェクトのリリースバージョンとしてバージョン「0.1」(引用符なし)を指定し、作業スナップショットを「1.0-SNAPSHOT」(以前と同じ)に設定しました。実際にリリースを作成しようとするのではなく、Perforceを使用します。ただし、情報を入力した後、次のエラーが発生しました。

[エラー]プロジェクトmyprojectでゴールorg.apache.maven.plugins:maven-release-plugin:2.3.1:prepare(default-cli)を実行できませんでした:ゴールorg.apache.maven.plugins:mavenの実行default-cli -release-plugin:2.3.1:prepare failed:データ「0.1」はJDOM文字コンテンツに対して有効ではありません:0x1bは有効なXML文字ではありません。->[ヘルプ1]

(それが私が得た正確なエラーであったかどうかは100%わかりません)

しかし今では、実行するたびにmvn release:prepare、バージョンを再提供したりスナップショット名を機能させたりする機会がなくても、同じエラー(間違いなく上記のエラー)が発生します。

バージョン「0.1」は無効ですか、それとも何らかの方法で値の1つにエスケープ文字(「0x1b」)を入力できましたか、それとも他の場所に何か問題がありますか?

また、入力した値がどこに行ったのかもわかりません。どうすればそれらを再設定したり、新しい値を入力して最初から準備を開始したりできますか?

ご覧いただきありがとうございます。

編集:

後者の部分、つまり値をリセットする方法に対する答えを見つけました。私が走ったら

mvn release:prepare -Dresume=false

もう一度値を入力します。

(@tomがすでに回答で述べているように、mvn release:rollbackそこにあるものを取り除くために走ることができます。しかし、おそらく準備が失敗したため、これは機能しないようです。)

今回はデフォルト値を入力しましたが、問題がそれよりもはるかに深刻であり、Perforce統合を適切に設定していない可能性があることに気付きました。私はこのINFO出力を取得します:

パスワードが見つかりません。パスワードなしで続行します。

私はそれを次のように設定しましたが:

<server>
  <id>ip-of-perforce-server</id>
  <username>my-perforce-username</username>
  <password>***************</password>
</server>

私のsettings.xmlで。プロジェクトのpomの例でセットアップを見ただけですが、settings.xmlでそれを実行できると述べられており、それが理にかなっている唯一のことのようです(pomは通常SCM)。ユーザー名とパスワードをenvvars(-Dusername = xxxなど)として指定すると、このメッセージが表示されないようにすることができます。

しかし、私もエラーが発生します:

CommandLineException終了コード:1-クライアント'PCNAME'不明-'client'コマンドを使用して作成します。

ここで、PCNAMEはデスクトップのWindows名です。実行してみました:

p4 client

これにより、次の内容のファイルが開きます。

Client: PCNAME
Owner:  my-perforce-username
Host:   PCNAME

それで、なぜそれは未知である/作成する必要があると言っているのですか?

自分自身に答えるために、私はそれを実行した後、それが表示された理由だと思うp4 clientと言ったことに気づきました:Pしたがって、エラーメッセージの指示に従うだけで私はしなければなりませんでした。Client PCNAME saved.

今、私は問題を抱えているだけです:

cygwinで実行するPath 'D:\Server\pom.xml' is not under client's root '/cygdrive/d/Server'と、UNIXパスとWindowsパス間の競合に関係していると思われるエラーが発生します。

それを除けば、次のバージョンを入力した後、エラーは発生しません。

java.io.IOException: The filename, directory name, or volume label syntax is incorrect
    at java.io.WinNTFileSystem.canonicalize0(Native Method)
    at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396)
    at java.io.File.getCanonicalPath(File.java:559)
    at org.apache.maven.scm.provider.perforce.command.edit.PerforceEditCommand.createCommandLine(PerforceEditCommand.java:109)
    at org.apache.maven.scm.provider.perforce.command.edit.PerforceEditCommand.executeEditCommand(PerforceEditCommand.java:51)
    at org.apache.maven.scm.command.edit.AbstractEditCommand.executeCommand(AbstractEditCommand.java:40)
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
    at org.apache.maven.scm.provider.perforce.PerforceScmProvider.edit(PerforceScmProvider.java:210)
    at org.apache.maven.scm.provider.AbstractScmProvider.edit(AbstractScmProvider.java:560)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.writePom(AbstractRewritePomsPhase.java:631)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transformProject(AbstractRewritePomsPhase.java:231)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transform(AbstractRewritePomsPhase.java:125)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.execute(AbstractRewritePomsPhase.java:110)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:234)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:169)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:146)
    at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:107)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:291)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:247)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)                            at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)                                        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR] CommandLineException Exit code: 1 - Usage: add/edit/delete [-c changelist#] [ -d -f -k -n -v ] [-t type] files...
Missing/wrong number of arguments.

Command line was:p4 -d D:\Server -p perforce-ip-and-port -u my-username -P my-password edit
org.codehaus.plexus.util.cli.CommandLineException: Exit code: 1 - Usage: add/edit/delete [-c changelist#] [ -d -f -k -n -v ] [-t type] files...
Missing/wrong number of arguments.

そして最後のMavenビルド失敗エラー:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.1:prepare (default-cli) on project project-name: Error writing POM: D:\Server\pom.xml (Access is denied) -> [Help 1]

(これは、コマンドラインでコマンドを実行するときにも発生することに注意してください。この場合、pomがクライアントのビューに表示されないというエラーは表示されませ

これが私の最後の残りの問題のようです...そこに着く:)

4

1 に答える 1

2

0.1は間違いなく合法的なバージョンです。入力した値は、ファイルと同じレベルのファイルに入力されていpom.xmlます(名前は後で消えるので、名前を思い出せませんmvn release:perform)。それらを消去するには、mvn release:rollback

また、マルチモジュールプロジェクトを使用する場合は、必ず「autoVersionSubModules」フラグを使用してください。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>${maven.plugin.release.version}</version>
    <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
    </configuration>
</plugin>

これにより、モジュールのバージョンも変更されます。

編集:この回答は、Mavenリリースプラグインに関する部分にのみ回答します。質問の他の部分ではありません。質問者は、質問の他の部分に関して新しい質問をすることにしました。

于 2012-06-12T09:24:28.990 に答える