ম্যাভেন রিলিজ প্লাগইন ব্যবহার করার সময় "গিট মারাত্মক: রেফ হেড একটি প্রতীকী রেফ নয়"


104

মাভেন রিলিজ প্লাগইন প্রস্তুতির পদক্ষেপের অর্থাত্ mvn release:prepare --batch-mode -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -Xএকটি আটলাসিয়ান বাঁশ পরিকল্পনা থেকে চালানোর সময় আমি নিম্নলিখিত ত্রুটি আউটপুটটি পাই । কমান্ড লাইনে একই কাজ ভাল কাজ করে। সম্পূর্ণ ত্রুটি স্ট্যাক নীচে।

কোনও ধারণা কীভাবে এটি সমাধান করা যায়?

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command. Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
    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:320)
    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:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    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)
Caused by: org.apache.maven.plugin.MojoExecutionException: An error is occurred in the checkin process: Exception while executing SCM command.
    at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:281)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:232)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: org.apache.maven.shared.release.ReleaseExecutionException: An error is occurred in the checkin process: Exception while executing SCM command.
    at org.apache.maven.shared.release.phase.AbstractScmCommitPhase.checkin(AbstractScmCommitPhase.java:160)
    at org.apache.maven.shared.release.phase.AbstractScmCommitPhase.performCheckins(AbstractScmCommitPhase.java:145)
    at org.apache.maven.shared.release.phase.ScmCommitPreparationPhase.runLogic(ScmCommitPreparationPhase.java:76)
    at org.apache.maven.shared.release.phase.AbstractScmCommitPhase.execute(AbstractScmCommitPhase.java:78)
    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:277)
    ... 22 more
Caused by: org.apache.maven.scm.ScmException: Exception while executing SCM command.
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:63)
    at org.apache.maven.scm.provider.git.AbstractGitScmProvider.executeCommand(AbstractGitScmProvider.java:291)
    at org.apache.maven.scm.provider.git.AbstractGitScmProvider.checkin(AbstractGitScmProvider.java:217)
    at org.apache.maven.scm.provider.AbstractScmProvider.checkIn(AbstractScmProvider.java:410)
    at org.apache.maven.shared.release.phase.AbstractScmCommitPhase.checkin(AbstractScmCommitPhase.java:156)
    ... 30 more
Caused by: org.apache.maven.scm.ScmException: Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref

    at org.apache.maven.scm.provider.git.gitexe.command.branch.GitBranchCommand.getCurrentBranch(GitBranchCommand.java:147)
    at org.apache.maven.scm.provider.git.gitexe.command.checkin.GitCheckInCommand.createPushCommandLine(GitCheckInCommand.java:192)
    at org.apache.maven.scm.provider.git.gitexe.command.checkin.GitCheckInCommand.executeCheckInCommand(GitCheckInCommand.java:132)
    at org.apache.maven.scm.command.checkin.AbstractCheckInCommand.executeCommand(AbstractCheckInCommand.java:54)
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
    ... 34 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
simple  02-Dec-2013 17:18:09    Failing task since return code of [/opt/dev/apache-maven/3.0.5//bin/mvn -Djava.io.tmpdir=/opt/atlassian/bamboo/5.2.1/temp/HPCMOM-RELEASE-JOB1 release:prepare --batch-mode -DignoreSnapshots=false -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X] was 1 while expected 0

হালনাগাদ:

এরকম git ls-remote .একটি স্থানীয় কর্মক্ষেত্র ক্লোন উপর উৎপন্ন:

azg@olympus:~/code/hpcmom$ git ls-remote .
7894eea08a0afecb99515d1339623be63a7539d4    HEAD
7894eea08a0afecb99515d1339623be63a7539d4    refs/heads/master
7894eea08a0afecb99515d1339623be63a7539d4    refs/remotes/origin/HEAD
7894eea08a0afecb99515d1339623be63a7539d4    refs/remotes/origin/master
6a7095b86cccdfd4b28e4dea633d0930809ae9ac    refs/tags/v1.0
1a53462b1ecf0abfea8245016304cda9c78b420d    refs/tags/v1.0^{}
5113a7cbcf35c47b680a9c36e15e5fa01ef1d2e6    refs/tags/v1.1
79a3073ecabe65d3c8051520f8007d9e49a65a06    refs/tags/v1.1^{}
a00249209597ea1214d80ee38f228c40db7022c2    refs/tags/v1.1.0
e892bce8d25d87368ab557fee0d30810bef7e31e    refs/tags/v1.1.0^{}
b491a312c39088533cb069e4ab1ae8a00d1f6bfe    refs/tags/v1.1.2
a3f7618dada7ed60d8190426152ffd90e0e40a86    refs/tags/v1.1.2^{}

এরকম git ls-remote .বাঁশ ক্লোন উপর উৎপন্ন:

azg@olympus:/var/atlassian/application-data/bamboo/xml-data/build-dir/HPCMOM-RELEASE-JOB1$ git ls-remote .
2422ce066ac35dae3c54f1435ef8dae5008a9a14    HEAD
57c08d581c0fd9e788049733fbdc9c22b9a6ae00    refs/heads/master
57c08d581c0fd9e788049733fbdc9c22b9a6ae00    refs/remotes/origin/HEAD
57c08d581c0fd9e788049733fbdc9c22b9a6ae00    refs/remotes/origin/master
7539f9700d78a1b766fca7ed9f409914f1ea9d08    refs/tags/vnull
6bfa8c3fdb1f8f56a385035f01b1b77b6e88da8b    refs/tags/vnull^{}

এবং এটি খুব অদ্ভুত যে কেন স্থানীয় বিকাশের ক্লোন আউটপুটটি বাঁশের চেয়ে আলাদা?


4
ঠিক আছে, সুতরাং এখানে সমস্যাটি হচ্ছে বাঁশের অধীনে চেকআউটটি "বিচ্ছিন্ন হেড" অবস্থায় রয়েছে। দেখা যাচ্ছে যে মাভেন বর্তমান শাখার নামটি বিশ্লেষণের চেষ্টা করছেন এবং ব্যর্থ হচ্ছেন কারণ আলাদা হেড অবস্থায়, HEADরেফ এখন আর কোনও শাখার নাম নয়, তবে একটি এসএএএ 1 উল্লেখ করে। আপনি চালিয়ে স্থানীয়ভাবে এই ভান করতে git checkout SHA1বা সংযোজন ^{}একটি সুত্র নাম: git checkout HEAD^{}। দেখে মনে হচ্ছে বাঁশ গিট প্লাগইন যদি সম্ভব হয় তবে শাখাটি চেকআউট করার চেষ্টা করে। সুতরাং এটির একটি প্রতিযোগিতা রয়েছে বলে মনে হচ্ছে: বিল্ড রান করার আগে নতুন জিনিসগুলি প্রদর্শিত হবে। কীভাবে এটি ঠিক করা যায় তা এখনও আমার কাছে পরিষ্কার নয়।
জন Szakmeister

উত্তর:


153

ম্যাভেন রিলিজ প্লাগইনের সাথে জেনকিন্সে আমি একই ত্রুটির মধ্যে পড়েছিলাম, আমরা অতিরিক্ত আচরণে গিয়ে নির্দিষ্ট স্থানীয় শাখায় পরীক্ষা করে 'মাস্টার' লিখে এটিকে ঠিক করেছি

আমি বুঝতে পারি এটি কোনও সমাধান নয় তবে এটি আপনাকে কোথায় দিকনির্দেশ দিতে পারে তাতে কিছু দিক দিতে পারে।


3
আপনি মাস্টার শাখা থেকে তৈরি করার সময় এটি কাজ করে। যদি আপনার শাখাটি পৃথক হয় তবে নির্দিষ্ট শাখার নাম পরিবর্তন করেও এটি কার্যকর হয় না।
সিদ্ধসিংহ

29
আমি মাস্টারের চেয়ে আলাদা শাখায় আছি এবং এটিও কার্যকর। আমি মনে করি যে সমস্যাটি হ'ল জেনকিনস গিট প্লাগইন সাধারণত বিচ্ছিন্ন মাথা অবস্থায় শাখাটি পরীক্ষা করে। সুতরাং git symbolic-refকমান্ড ব্যর্থ হয়। যোগ করে Check out to specific local branchআমরা এটি ঠিক করেছি।
রেনি লিংক

16
**পরিবর্তে ব্যবহার masterকরে স্থানীয় শাখার নামটি দূরবর্তীটির সাথে মিলবে।
নেক্সাস

1
সহায়তার ( গিট প্লাগইন - জেনকিনস - জেনকিন্স উইকি ) অনুসারে ক্ষেত্রটি খালি রেখে দেওয়াও এর জন্য কাজ করতে পারে: "যদি নির্বাচিত হয় এবং এর মানটি খালি স্ট্রিং হয় বা **, তবে শাখার নামটি মূল ছাড়াই দূরবর্তী শাখা থেকে গণনা করা হয় । "
evgeny9

@jvwilge আমার ক্ষেত্রে এটি একটি ভাগ করা পাইপলাইন, সুতরাং সমস্ত সেটিংস pom.xML থেকে আসছে।
কোডটিতে

31

জেনকিনস এবং জিআইটি-র জন্য অতিরিক্ত আচরণ যুক্ত করুন check out to specific local branchএবং Workspace Cleanup Pluginআপনার সিআই কাজের শুরুতে আপনার কর্মক্ষেত্র পরিষ্কার করতে ব্যবহার করুন ।


1
ধন্যবাদ, এটি আমার পক্ষে কাজ করেছে আমারও যোগ করার দরকার ছিল -Darguments="-Dmaven.deploy.skip=true"
timbru31

@ টসচনেক হাই আমি জেনকিনস এবং গিট ব্যবহার করে এই সঠিক সমস্যাটি নিয়ে আসছি। আপনি উল্লিখিত প্লাগইনটির জন্য আদেশগুলি এবং কনফিগারেশন অন্তর্ভুক্ত করতে দয়া করে আপনার উত্তরটি এখানে প্রসারিত করতে পারেন। ধন্যবাদ।
জেরেমি

অতিরিক্তভাবে কর্মক্ষেত্রটি পরিষ্কার করার কারণ কী?
কেপ

বর্তমানে আমি মাভেন-জজিটিফ্লো প্লাগইনটিতে আরও চলে এসেছি। এটি বৈশিষ্ট্য এবং বাগফিক্স শাখাকে সমর্থন করে এবং আমি দেখেছি সেরা প্রকাশের কার্যকারিতা। bitbucket.org/atlassian/jgit-flow/wiki/Home
toschneck

"নির্দিষ্ট স্থানীয় শাখায় চেক আউট" যুক্ত করা আমার পক্ষেও কার্যকর।
জনলিপ

11

আটলাসিয়ান বাঁশের সমস্যা Use shallow clonesবর্ণনা সহ ডিফল্ট সেটিংটি চেক করে সমাধান করা হয়েছিলFetches the shallowest commit history possible. Do not use if your build depends on full repository history । এই চেকবক্সটি প্ল্যান কনফিগারেশন -> সংগ্রহস্থল ট্যাব -> গিট -> উন্নত বিকল্পের অধীনে অবস্থিত

এর পরে সমস্ত রিলিজ ঠিকঠাক কাজ করে।


5

Use shallow clonesআমার ক্ষেত্রে এটি পরীক্ষা করা যথেষ্ট ছিল না (আমি বাঁশের ব্যবহার করছি 5.7.2)। Force Clean Buildসোর্স কোড চেকআউট কার্যে আমার সক্ষম হওয়াও দরকার । সক্ষম করার Use shallow clonesপরে কাজের পরবর্তী কার্য সম্পাদনের জন্য কাজ করা হবে, তবে পরবর্তী সমস্ত মৃত্যুদণ্ড কার্যকর হওয়ার ফলে একই ত্রুটি ঘটবে।


4

মাভেন রিলিজ প্লাগ-ইন ব্যবহার করে বাঁশের নীচে এই সমস্যাটি আমি দেখেছি। আমি 'উত্স চেকআউট' কার্যটিতে 'ফোর্স ক্লিন বিল্ড' বিকল্পটি সক্ষম করে এটি ঠিক করেছি। বাঁশ বলছে এটি বিল্ডটি ধীর করে দিতে পারে তবে এটি কাজ করে এবং আমি কোনও উল্লেখযোগ্য সময় বাড়তে দেখি না।


বাঁশের কোন সংস্করণ আপনি ব্যবহার করেছেন? আমি এটি চেষ্টা করেছিলাম কিন্তু এটি আমার পক্ষে আর কার্যকর হয়নি।
স্কাইওয়াকার

1
আমি 5.3 বিল্ডটি 4101 - 09 ডিসেম্বর 13
জাকম্যাক

3

আমি একটি জেনকিনস টিম প্রকল্পটি একটি মাল্টিব্র্যাঞ্চ প্রকল্প সেটআপ সহ ব্যবহার করছি using

আমি আগে ব্যবহার checkout scm কমান্ড ।

এখন আমি নিম্নলিখিত কোড ব্যবহার করছি:

checkout([
                 $class: 'GitSCM',
                 branches: scm.branches,
                 extensions: scm.extensions + [[$class: 'CleanCheckout'], [$class: 'LocalBranch', localBranch: 'new']],
                 userRemoteConfigs: scm.userRemoteConfigs
            ])

1
কৌতুকটি করায়ত বলে মনে হয়েছে এটিকে একটি উত্সাহ দিয়েছেন। তবে আরও কিছু ঝুঁকির পরে, আমি লক্ষ্য করেছি যে এটি আসলে "নতুন" নামে একটি নতুন শাখা তৈরি করেছে (মাভেন রিলিজ প্লাগইন ব্যবহার করার সময়)। আরও সঠিক পদ্ধতির newসাথে পরিবর্তন করা হবে **, যা স্থানীয় শাখার নামটিকে দূরবর্তী হিসাবে একই করে তোলে।
টবব

3

"এমভিএন রিলিজ" কল করার আগে "গিট চেকআউট-মাস্টার" কল করা আমার পক্ষে কী কাজ করেছিল


0

আমাদের জন্য সমস্যাটি পোম ফাইলে নির্দিষ্ট মেন সংস্করণ নিয়ে ছিল। বাঁশের একটি অনুসারে পোম ফাইলে নির্দিষ্ট করা মভেন সংস্করণটি সংশোধন করেছে fixed


0

GitHub ক্রিয়াগুলি সেটআপ করতে actions/checkout@v2সঙ্গেref: master

steps:
  - uses: actions/checkout@v2
    with:
      ref: master
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.