Я пытаюсь заставить работать плагин выпуска maven, интегрируясь с Perforce. Я, наконец, вчера куда-то добрался и успел пробежать:
mvn release:prepare
и попросили указать много версий и новых рабочих снапшотов. Я указал версию «0.1» (без кавычек) в качестве версии релиза для всех подпроектов и установил рабочий снимок «1.0-SNAPSHOT» (как и раньше), так как я просто тестировал плагин и интеграцию. с Perforce, а не пытаться создать релиз. Однако после ввода информации я получил следующую ошибку:
[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-release-plugin:2.3.1:prepare (default-cli) в проекте myproject: выполнение default-cli цели org.apache.maven.plugins:maven -release-plugin:2.3.1:prepare failed: данные "0.1" недопустимы для содержимого символа JDOM: 0x1b не является допустимым символом XML. -> [Помощь 1]
(Я не уверен на 100%, что это была именно та ошибка, которую я получил)
Но теперь, каждый раз, когда я запускаю mvn release:prepare, я получаю ту же ошибку (определенно ту, что выше), без возможности повторно предоставить версии или имена рабочих снимков.
Версия "0.1" недействительна, или мне как-то удалось ввести escape-символ ("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>
в моих настройках.xml. Я видел его настройку только в примерах в pom проекта, но было упомянуто, что вы можете сделать это в settings.xml, и это, кажется, единственное, что имеет смысл (поскольку pom обычно будет в SCM). Я могу избежать получения этого сообщения, если укажу имя пользователя и пароль как env vars (-Dusername=xxx и т. д.).
Но я также получаю сообщение об ошибке:
Код выхода CommandLineException: 1 — Клиент «PCNAME» неизвестен — используйте команду «client» для его создания.
где PCNAME — это имя моего рабочего стола в Windows. Я попытался запустить:
p4 client
и это открывает файл с содержимым:
Client: PCNAME
Owner: my-perforce-username
Host: PCNAME
так почему он говорит, что он неизвестен/нуждается в создании?
Чтобы ответить себе, я только что заметил, что после запуска p4 client он сказал Client PCNAME saved., и я думаю, поэтому он отображался: P Так что все, что мне нужно было сделать, это следовать инструкциям в сообщении об ошибке.
Теперь у меня есть только проблемы:
Если я запускаю 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 Build Failure:
[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 не находится в представлении клиента, не появляется)
Кажется, это моя последняя оставшаяся проблема... добраться туда :)
release.propertiesи повторить попытку — в этом файле хранятся введенные вами значения. - person Raghuram   schedule 12.06.2012mvn release:prepare -Dusername=MyName -Dpassword=*****, и таким образом я не получил сообщение «Пароль не найден», но все же клиент X неизвестен ОШИБКА... - person Svend Hansen   schedule 12.06.2012Connection > Edit Current Workspace...в p4v и посмотрю на вкладкеAdvanced. Должно ли это действительно быть IP-адресом (или именем хоста) сервера perforce. Кажется (из-за изменения этого), что это хост, с которого клиенту разрешено подключаться к рабочей области? Может ли это быть связано с ошибкой? - person Svend Hansen   schedule 12.06.2012