Próbuję zrobić wydanie za pośrednictwem wtyczki Maven i mam problemy z konfiguracją SCM. Używam Eclipse z zainstalowanym m2eclipse. Używamy Mercurial i na moim komputerze (Win7) Mam zainstalowane TortoiseHg. Mam projekt testowy, który tworzy słoik. Korzystamy z super-pom do naszych projektów, więc test projektu pom robi również. Mam skonfigurować to w super pom:Doing prasowe z Maven/Hudson/Mercurial
<build>
<plugins>
....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin
<version>1.6</version>
<configuration>
<connectionType>connection</connectionType>
</configuration>
</plugin>
</plugins>
</build>
Mój testowy projekt pom wygląda następująco:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>TestJar
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>my.group</groupId>
<artifactId>super-pom</artifactId>
<version>1.0</version>
</parent>
<scm>
<connection>
scm:hg:ssh://our.scm.server:22//path/to/TestJarProject
</connection>
<developerConnection>
scm:hg:ssh://our.scm.server:22//path/to/TestJarProject
</developerConnection>
</scm>
</project>
pamiętać, że ssh do naszego serwera SCM. Podejrzewam, że niektóre problemy, które napotykam, są z tym powiązane. Udało mi się znaleźć przykłady korzystające z http.
W moim pliku settings.xml dodałem to:
<servers>
...
<server>
<id>our.scm.server</id>
<username>username</username>
<password>password</password>
</server>
</servers>
Kiedy biegnę wydaniu: przygotować wydanie: wykonać, okno dialogowe TortoisePlink wyskakuje skłoniło mnie o hasło. Okno dialogowe pyta "@ our.scm.server's password".
Wygląda na to, że nie używa nazwy użytkownika ani hasła z pliku settings.xml, czego oczekiwałem, dodając do niego element server. Tak być powinno? Próbowałem również dodać moją nazwę użytkownika do adresu URL połączenia:
<connection>
scm:hg:ssh://[email protected]:22//path/to/TestJarProject
</connection>
, ale nadal wyświetlany jest monit o podanie pustego hasła użytkownika.
PYTANIE ONE
Czy ktoś z powodzeniem wykorzystywane do łączenia się z ssh Mercurial robiąc Maven wydawnictw?
Ponieważ ostatecznie chcą zrobić kompilacje w Hudson, skonfigurować zadanie Hudson zrobić uwolnienie, ale nie jest on z tego błędu:
[INFO] o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s)
[INFO] o.h.m.e.h.MavenExecutionResultHandler - [1] org.apache.maven.lifecycle.\
LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:\
maven-release-plugin:2.0:prepare (default-cli) on project TestJar: Cannot \
prepare the release because you have local modifications :
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/_maven.repositories:unknown]
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom:unknown]
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom.sha1:unknown]
... many, many more lines of this nature .....
Pytanie drugie
Co lokalne modyfikacje czy Maven napotyka?
Ponieważ projekt jest pobierany z repozytorium, jedyną zmianą, jaką mogę wymyślić, jest aktualizacja pliku pom (usunięcie SNAPSHOT z wersji). Ale Maven nie powinien narzekać na to, skoro sama dokonała zmiany, nie?
UPDATE
Zgodnie z sugestią khmarbaise, w Dodałem to do mojego macierzystego POM:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
</plugin>
</plugins>
</pluginManagement>
Najpierw wykonaj sekcję pluginManagement w rodzica i skonfiguruj nowszą wersję wtyczki maven-release, ponieważ używasz wersji 2.0, która jest trochę nieaktualna ... Którą wersję Maven używasz? Hudson na bieżąco? Korzystasz z wtyczki wydania Hudson? – khmarbaise
Używamy Hudsona 2.1.2 i Mavena 3 (w pakiecie z Hudson) – sdoca
Czy najpierw sprawdziłeś, czy możesz wydać polecenie w wierszu poleceń bez Hudsona? (dodano sekcję pluginManagement?) – khmarbaise