2012-01-24 17 views
5

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> 
+0

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

+0

Używamy Hudsona 2.1.2 i Mavena 3 (w pakiecie z Hudson) – sdoca

+0

Czy najpierw sprawdziłeś, czy możesz wydać polecenie w wierszu poleceń bez Hudsona? (dodano sekcję pluginManagement?) – khmarbaise

Odpowiedz

2

PYTANIE ONE

Czy ktoś z powodzeniem stosowany ssh, aby połączyć się Mercurial podczas wydawania Mavena?

Odpowiedź wydaje się, że wtyczka Maven Release działa tylko z https.Udało nam się uzyskać https działa na naszym serwerze Mercurial ogólnie postępując zgodnie z instrukcjami na tej stronie:

https://www.mercurial-scm.org/wiki/HgWebDirStepByStep

Pytanie drugie

Co lokalne modyfikacje jest Maven napotykając?

Lokalnymi modyfikacjami są katalog .maven tworzony podczas kompilacji. Dodając .maven/* do mojego pliku .hgignore, udało mi się ukończyć kompilację.

0

nie jestem w stanie odtworzyć tego teraz, ale z wcześniejszego doświadczenia pamiętam, że połączenie ssh tylko praca z kluczem na bazie uwierzytelniania, ale nie z nazw użytkowników i haseł. Niekoniecznie jest to związane z pluginem wydania i/lub jego obsługą Mercurial.

EDYCJA: Próbowałem już dostępu do ssh na bazie klucza z Mercurial i wersją plugin w wersji 2.4.1 już dziś i działa dobrze. Jednym z możliwych źródeł problemów jest format URL SCM. W moim przypadku jest to:

scm:hg:ssh://[email protected]/path 

Tak więc odpowiedź na twoje pytanie jest taka: tak, ale nie z uwierzytelnianiem nazwy użytkownika/hasła. Nie napotkałem żadnego problemu z "lokalnymi modyfikacjami", ale mam cel w moim .hgignore, więc to może być to.

Powiązane problemy