2013-04-24 8 views
6

jestem w obliczu problemu z wydaniem Continuum: przygotować fazę, która zawodzi w SCM-check-modyfikacje kroku z błędem:Maven Release: przygotować: Nie można przygotować zwolnienie, bo trzeba lokalne modyfikacje

[ERROR] org.apache.maven.shared.release.ReleaseFailureException: nie można przygotować zwolnienie, bo trzeba lokalne modyfikacje: [pom.xml: zmodyfikowany]

co zrobiłem:

  1. I popełnione wszystkie moje zmiany (* .java i pom.xml) do SVN
  2. zrobiłem kompilację projektu w Continuum
  3. I rozpoczęła przygotowania do wydania.

Wiem, że modyfikacje sprawdzania poprawek SCM wywołują klasę ScmCheckModificationsPhase, która sprawdza, czy nie ma lokalnych zmian w porównaniu do tego, co jest w SCM.

Rozumiem, że jeśli pracuję tylko z Maven, jeśli są jakieś lokalne zmiany lub jakieś różnice między lokalnym kodem a SVN na przykład, release: przygotowanie nie zadziała, ponieważ najpierw sprawdza modyfikacje; ale pracując z Continuum, nie wiem, dlaczego powinna to być różnica między lokalnym kodem a repozytorium SVN? Więc nie wiem, dlaczego wydanie: przygotuj cel w Continuum, staje przed tym problemem.

Przykład mojego pom:

<build> 
     <plugins> 
    ... 
     <plugin> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <useReleaseProfile>false</useReleaseProfile> 
      </configuration> 
     </plugin> 

    ...  
     </plugins> 

    </build> 


<scm> 
    <connection>scm:cvs:ext:url:/var/cvs:application_name</connection>   <developerConnection>scm:cvs:ext:url:/var/cvs:application_name</developerConnection> 
</scm> 

..... 
</project> 

W pom.xml dominującej:

... 
    <pluginManagement> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.2.2</version> 
      <configuration> 
      <useReleaseProfile>false</useReleaseProfile> 
      <goals>deploy</goals> 
      <arguments>-Prelease</arguments> 
      </configuration> 
     </plugin> 
..... 

Aby uzyskać więcej informacji, kompilacja i uwolnienie projektu jest zawsze działa poprawnie, aż do teraz.

Istnieje rozwiązanie Bypass, które rozwiązało mój problem, ale wciąż staram się zrozumieć pochodzenie tego problemu.

Rozwiązanie bypass:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.2</version> 
    <configuration> 
    ... 
    <checkModificationExcludes> 
     <checkModificationExclude>pom.xml</checkModificationExclude> 
    </checkModificationExcludes> 
    </configuration> 
</plugin> 
+0

Czy sprawdziłeś w linii poleceń poza kontinuum? – khmarbaise

+0

Porównanie modyfikacji dokonanych w pom.xml może dać ci pojęcie o tym, co się stało. Czy możesz dodać te informacje do swojego pytania? – cahen

+0

@khmarbaise: Właściwie nie, muszę zainstalować Tortoise, ponieważ Maven będzie narzekał, że polecenie "svn" nie zostanie rozpoznane. Czy masz jakiś pomysł, dlaczego Continuum będzie narzekać na różnice w problemie między SCM a lokalnym kodem? –

Odpowiedz

9

Mogę potwierdzić, że dodanie wtyczki lub skonfigurowanie go wykluczyć sprawdzanie pom.xml wyszło:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <checkModificationExcludes> 
      <checkModificationExclude>pom.xml</checkModificationExclude> 
     </checkModificationExcludes> 
    </configuration> 
    </plugin> 
7

Usuwanie target folderu Moje projektu ze źródła kontrola naprawiła dla mnie ten problem.

Powiązane problemy