Я пытаюсь работать mvn release:prepare
цель и это зависают после нажатия. Какая-либо идея, что я мог делать неправильно?
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD SUCCESSFUL
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 8 seconds
[INFO] [INFO] Finished at: Tue Jul 13 23:54:59 PDT 2010
[INFO] [INFO] Final Memory: 55M/294M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\development\taylor\my-app
[INFO] Executing: cmd.exe /X /C "git status"
[INFO] Working directory: C:\development\taylor\my-app
[INFO] Executing: cmd.exe /X /C "git commit --verbose -F C:\Users\TAYLOR~1\AppData\Local\Temp\maven-scm-1932347225.commit pom.xml"
[INFO] Working directory: C:\development\taylor\my-app
[INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
[INFO] Working directory: C:\development\taylor\my-app
[INFO] Executing: cmd.exe /X /C "git push git@github.com:tleese22/my-app.git master:master"
[INFO] Working directory: C:\development\taylor\my-app
>>>> hangs here <<<<
Ниже раздел SCM моего pom.xml:
<scm>
<connection>scm:git:git://github.com/tleese22/my-app.git</connection>
<developerConnection>scm:git:git@github.com:tleese22/my-app.git</developerConnection>
<url>http://github.com/tleese22/my-app</url>
</scm>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
</plugin>
Ниже мой .git/config:
[core]
repositoryformatversion = 0
filemode = true
logallrefupdates = true
bare = false
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = git@github.com:tleese22/my-app.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = git@github.com:tleese22/my-app.git
Вот результат выставочного источника мерзавца:
$ git remote show origin
Enter passphrase for key '/c/Users/Taylor Leese/.ssh/id_rsa':
* remote origin
Fetch URL: git@github.com:tleese22/my-app.git
Push URL: git@github.com:tleese22/my-app.git
HEAD branch: master
Remote branches:
gh-pages new (next fetch will store in remotes/origin)
master new (next fetch will store in remotes/origin)
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
$ git status
# On branch master
nothing to commit (working directory clean)
Учитывая исходный код git builtin-push.c
, это означает, что каким-то образом не определены удаленные устройства для локального репозитория Git, используемого сценарием maven.
static int do_push(const char *repo, int flags)
{
int i, errs;
struct remote *remote = remote_get(repo);
const char **url;
int url_nr;
if (!remote) {
if (repo)
die("bad repository '%s'", repo);
die("No destination configured to push to.");
}
Как показано в сообщении в блоге , конфигурация maven - это еще не все.
~/foo/mikeci-archetype-springmvc-webapp$ git remote add origin git@github.com:amleggett/mikeci-archetype-springmvc-webapp.git
Удаленное добавление
по-прежнему требуется, прежде чем указывать параметры maven scm:
Обновление POM
Для эффективной работы Maven вы всегда должны включать информацию о VCS проекта в свой POM файл.
Теперь, когда мы добавили архетип в репозиторий Git, мы можем включить соответствующую конфигурацию:
<scm>
<connection>
scm:git:ssh://github.com/amleggett/${artifactId}.git
</connection>
<developerConnection>
scm:git:ssh://git@github.com/amleggett/${artifactId}.git
</developerConnection>
<url>
http://github.com/amleggett/${artifactId}
</url>
</scm>
В том же сообщении в блоге добавлено:
Важно понимать значение каждого из дочерние элементы
.
- Элемент
определяет URL-адрес только для чтения, а
- элемент
- URL-адрес для чтения и записи.
Для обоих этих элементов URL-адрес должен соответствовать следующему соглашению:
scm:<scm implementation>:<scm implementation-specific path>
- Наконец, содержимое элемента
должно указывать на доступное для просмотра местоположение, и для меня это домашняя страница репозитория GitHub. . Обратите внимание, что во всех случаях я использую интерполированное значение, которым является artifactId моего проекта.
Один удобный совет: вы можете проверить эту конфигурацию с помощью
maven-scm-plugin
.
Этот плагин предлагает независимый от производителя доступ к общим командам VCS, предлагая набор сопоставлений команд для настроенной VCS. Цель проверки должна подтвердить, что все в порядке:
~/foo/mikeci-archetype-springmvc-webapp$ mvn scm:validate
[INFO] Preparing scm:validate
[INFO] No goals needed for project - skipping
[INFO] [scm:validate {execution: default-cli}]
[INFO] connectionUrl scm connection string is valid.
[INFO] project.scm.connection scm connection string is valid.
[INFO] project.scm.developerConnection scm connection string is valid.
[INFO] --------------------------------------------------------------
[INFO] BUILD SUCCESSFUL