Wednesday 15 June 2011

maven scm does not listen to perforce trigger output -



maven scm does not listen to perforce trigger output -

hello maven / perforce experts,

i trying implement auto versioning of maven artifacts project uses perforce vcs. made me take maven-scm-plugin , maven-release-plugin accomplish purpose. utilize triggers in perforce, checks violations in xml content each commit.

checkstyle_xml change-content //depot/project/....xml " /p4/triggers/checkstyle-trigger.pl %user% %changelist% /p4"

unfortunately, when run command “mvn -x -e -b scm:edit release:update-versions scm:checkin“ edit file, update version , submit perforce, maven not honor result perforce trigger , fails build. however, can see alter submitted perforce eventually.

stack trace using xml has trigger enabled

[debug] sending changelist: change: new description: auto increment pom version during build process. reviewed by: re files: //depot/project/pom.xml [error] provider message: [error] unable submit [error] command output: [error] debug: starting trigger script alter 351157 submitted. [info] ------------------------------------------------------------------------ [info] build failure [info] ------------------------------------------------------------------------ [info] total time: 4.112s [info] finished at: thu oct 30 14:51:51 pdt 2014 [info] final memory: 23m/219m [info] ------------------------------------------------------------------------ [error] failed execute goal org.apache.maven.plugins:maven-scm-plugin:1.7:checkin (default-cli) on project phoenix: command failed.unable submit -> [help 1] org.apache.maven.lifecycle.lifecycleexecutionexception: failed execute goal org.apache.maven.plugins:maven-scm-plugin:1.7:checkin (default-cli) on project phoenix: command failed.unable submit @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:217) @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:153) @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:145) @ org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject(lifecyclemodulebuilder.java:84) @ org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject(lifecyclemodulebuilder.java:59) @ org.apache.maven.lifecycle.internal.lifecyclestarter.singlethreadedbuild(lifecyclestarter.java:183) @ org.apache.maven.lifecycle.internal.lifecyclestarter.execute(lifecyclestarter.java:161) @ org.apache.maven.defaultmaven.doexecute(defaultmaven.java:320) @ org.apache.maven.defaultmaven.execute(defaultmaven.java:156) @ org.apache.maven.cli.mavencli.execute(mavencli.java:537) @ org.apache.maven.cli.mavencli.domain(mavencli.java:196) @ org.apache.maven.cli.mavencli.main(mavencli.java:141) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.codehaus.plexus.classworlds.launcher.launcher.launchenhanced(launcher.java:290) @ org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:230) @ org.codehaus.plexus.classworlds.launcher.launcher.mainwithexitcode(launcher.java:409) @ org.codehaus.plexus.classworlds.launcher.launcher.main(launcher.java:352) caused by: org.apache.maven.plugin.mojoexecutionexception: command failed.unable submit @ org.apache.maven.scm.plugin.abstractscmmojo.checkresult(abstractscmmojo.java:439) @ org.apache.maven.scm.plugin.checkinmojo.execute(checkinmojo.java:83) @ org.apache.maven.plugin.defaultbuildpluginmanager.executemojo(defaultbuildpluginmanager.java:101) @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:209) ... 19 more [error] [error] [error] more info errors , possible solutions, please read next articles: [error] [help 1] http://cwiki.apache.org/confluence/display/maven/mojoexecutionexception

i submitted file locally ensure perforce trigger doesn’t spit failure status code , returns success too. not sure why maven wont honor perforce triggers.

p4 –u testuser submit -d "test" pom.xml submitting alter 351166. locking 1 files ... edit //depot/project/pom.xml#25 debug: starting trigger script alter 351166 submitted. $ echo $? 0

i tested scenario txt file doesn’t have perforce trigger enabled , maven returns build result success, because technically doesn’t go through perforce trigger

stack trace using txt doesnt have trigger

[debug] sending changelist: change: new description: auto increment pom version during build process. reviewed by: re files: //depot/phoenix/auto-increment-pom/pom.txt [info] ------------------------------------------------------------------------ [info] build success [info] ------------------------------------------------------------------------ [info] total time: 2.998s [info] finished at: thu oct 30 14:55:04 pdt 2014 [info] final memory: 18m/216m [info] ------------------------------------------------------------------------

question:

has experienced behavior maven , how did workaround? would know if possible disable perforce trigger particular file, perforce doesn’t go through trigger

you can utilize exclusionary syntax (a leading hyphen in path field) in triggers table specify files or patterns not run trigger.

there illustration of in 'p4 triggers' documentation: http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_triggers.html

be careful syntax, it's little persnickety:

the triggers grouped based on trigger name , type the order of lines in trigger table grouping matters

there knowledge base of operations article feature goes more detail: http://answers.perforce.com/articles/kb_article/excluded-trigger-paths-not-being-recognized

maven maven-3 perforce maven-scm maven-scm-plugin

No comments:

Post a Comment