maven release:prepare IOException -
i'm trying maven's release plugin working perforce. when run:
mvn release:prepare -dusername=perforceuser -dpassword=perforcepassword
i output (with ips/username/passwords removed):
[info] scanning projects... [info] ------------------------------------------------------------------------ [info] reactor build order: [info] [info] root-project [info] project1 [info] project2 [info] project3 [info] project4 [info] project5 [info] project6 [info] project7 [info] project8 [info] project9 [info] [info] ------------------------------------------------------------------------ [info] building root-project 1.0-snapshot [info] ------------------------------------------------------------------------ [info] [info] --- maven-release-plugin:2.3.1:prepare (default-cli) @ root-project --- [info] verifying there no local modifications... [info] ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releasebackup, **\pom.xml.backup, **\pom.xml.bran ch, **\pom.xml.tag [error] path 'd:\server\pom.xml' not under client's root '/cygdrive/d/server'. [info] checking dependencies , plugins snapshots ... release version "root-project"? (com.company:root-project) 1.0: : scm release tag or label "root-project"? (com.company:root-project) root-project-1.0: : new development version "root-project"? (com.company:root-project) 1.1-snapshot: : [info] transforming 'root-project'... [info] updating project8 1.0 [info] updating project4 1.0 [info] updating project1 1.0 [info] updating project3 1.0 [info] updating project6 1.0 [info] updating project7 1.0 [info] updating project9 1.0 [info] updating project5 1.0 java.io.ioexception: filename, directory name, or volume label syntax incorrect @ java.io.winntfilesystem.canonicalize0(native method) @ java.io.win32filesystem.canonicalize(win32filesystem.java:396) @ java.io.file.getcanonicalpath(file.java:559) @ org.apache.maven.scm.provider.perforce.command.edit.perforceeditcommand.createcommandline(perforceeditcommand.java:109) @ org.apache.maven.scm.provider.perforce.command.edit.perforceeditcommand.executeeditcommand(perforceeditcommand.java:51) @ org.apache.maven.scm.command.edit.abstracteditcommand.executecommand(abstracteditcommand.java:40) @ org.apache.maven.scm.command.abstractcommand.execute(abstractcommand.java:59) @ org.apache.maven.scm.provider.perforce.perforcescmprovider.edit(perforcescmprovider.java:210) @ org.apache.maven.scm.provider.abstractscmprovider.edit(abstractscmprovider.java:560) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.writepom(abstractrewritepomsphase.java:631) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.transformproject(abstractrewritepomsphase.java:231) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.transform(abstractrewritepomsphase.java:125) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.execute(abstractrewritepomsphase.java:110) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:234) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:169) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:146) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:107) @ org.apache.maven.plugins.release.preparereleasemojo.preparerelease(preparereleasemojo.java:291) @ org.apache.maven.plugins.release.preparereleasemojo.execute(preparereleasemojo.java:247) @ org.apache.maven.plugin.defaultbuildpluginmanager.executemojo(defaultbuildpluginmanager.java:101) @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:209) @ 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:319) @ 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:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ 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) [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 *the-ip-of-perforce* -u *perforceuser* -p *perforcepassword* 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. command line was:p4 -d d:\server -p *the-ip-of-perforce* -u *perforceuser* -p *perforcepassword* edit @ org.apache.maven.scm.provider.perforce.command.edit.perforceeditcommand.executeeditcommand(perforceeditcommand.java:71) @ org.apache.maven.scm.command.edit.abstracteditcommand.executecommand(abstracteditcommand.java:40) @ org.apache.maven.scm.command.abstractcommand.execute(abstractcommand.java:59) @ org.apache.maven.scm.provider.perforce.perforcescmprovider.edit(perforcescmprovider.java:210) @ org.apache.maven.scm.provider.abstractscmprovider.edit(abstractscmprovider.java:560) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.writepom(abstractrewritepomsphase.java:631) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.transformproject(abstractrewritepomsphase.java:231) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.transform(abstractrewritepomsphase.java:125) @ org.apache.maven.shared.release.phase.abstractrewritepomsphase.execute(abstractrewritepomsphase.java:110) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:234) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:169) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:146) @ org.apache.maven.shared.release.defaultreleasemanager.prepare(defaultreleasemanager.java:107) @ org.apache.maven.plugins.release.preparereleasemojo.preparerelease(preparereleasemojo.java:291) @ org.apache.maven.plugins.release.preparereleasemojo.execute(preparereleasemojo.java:247) @ org.apache.maven.plugin.defaultbuildpluginmanager.executemojo(defaultbuildpluginmanager.java:101) @ org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:209) @ 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:319) @ 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:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ 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) [info] ------------------------------------------------------------------------ [info] reactor summary: [info] [info] root-project ........................................ failure [22.348s] [info] project1 ............................................ skipped [info] project2 ............................................ skipped [info] project3 ............................................ skipped [info] project4 ............................................ skipped [info] project5 ............................................ skipped [info] project6 ............................................ skipped [info] project7 ............................................ skipped [info] project8 ............................................ skipped [info] project9 ............................................ skipped [info] ------------------------------------------------------------------------ [info] build failure [info] ------------------------------------------------------------------------ [info] total time: 22.967s [info] finished at: tue jun 12 15:41:53 bst 2012 [info] final memory: 8m/154m [info] ------------------------------------------------------------------------ [error] failed execute goal org.apache.maven.plugins:maven-release-plugin:2.3.1:prepare (default-cli) on project root-project: error writing pom: d:\server\pom.xml (access denied) -> [help 1] [error] [error] see full stack trace of errors, re-run maven -e switch. [error] re-run maven using -x switch enable full debug logging. [error] [error] more information errors , possible solutions, please read following articles: [error] [help 1] http://cwiki.apache.org/confluence/display/maven/mojoexecutionexception
this happens both when run in cygwin , when run in normal native windows command prompt.
before got far in setup, sure managed write versions pom @ least once, doesn't.
looking @ maven scm provider perforce source code can see on line 93 creates basic p4 command line
commandline command = perforcescmprovider.createp4command( repo, workingdirectory );
then on line 95 adds edit
command.createarg().setvalue( "edit" );
and then inside try-catch adds files. line 109
string canfile = file.getcanonicalpath();
is throwing ioexception seen above causing stacktrace printed , why file(s) don't added , execution of p4 command fails (which in turn causes "access denied" because it's failing checkout file (which therefore read only).
edit:
the reason throws ioexception when creates file on line 103:
file file = new file( workingdirectory, fs.get( ).getpath() );
the fs.get( ).getpath()
returns absolute path, file ends looking like
d:\server\d:\server\pom.xml (in case)
and broken.
i've changed line (and similar line in perforcecheckincommand.java locally to:
file file = null; if(fs.get( ).isabsolute()) file = new file( fs.get( ).getpath() ); else file = new file( workingdirectory, fs.get( ).getpath() );
and reinstalled plugin , works. problem bug in plugin causing particular setup fail. i've submitted bug report, no 1 else experience this, if do, download plugin src, make 2 changes , re-install (mvn install), , should work.
Comments
Post a Comment