Maven-release-plug: Eseguire fallisce con 'directory di lavoro ‘... workspace \ obiettivo \ cassa \ spazio di lavoro’ non esiste!'

StackOverflow https://stackoverflow.com/questions/2804294

Domanda

Ho Maven progetto che fallisce quando release:. Compiere è chiamato, anche se il rilascio; preparare lavori come previsto

Ho trovato il bug report (sotto), che certamente sembra assomigliare al problema che ho, ma non del tutto sicuro di aver capito il problema: MRELEASE516

Le ultime righe di uscita ottengo:

[INFO] Executing: cmd.exe /X /C "p4 -d E:\hudson\jobs\myHudsonJob\workspace\target\checkout -p 1.1.1.1:1111: client -d myProjectWorkspace-MavenSCM-E:\hudson\jobs\myHudsonJob\workspace\target\checkout"
[INFO] Executing goals 'deploy'...
[WARNING] Base directory is a file. Using base directory as POM location.
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing Maven.

Working directory "E:\hudson\jobs\myHudsonJob\workspace\target\checkout\workspace" does not exist!

Dalla lettura del bug report la possibile causa dell'errore è legato alla struttura i miei moduli, ho cercato di delineare qui sotto:

/workspace
|
|+ pom.xml (root pom whose parent is the build pom, 
|           calling release:perform on this pom)
|           [Modules: moduleA and moduleB]
|
|- moduleA
   |+ pom.xml (parent is also build pom)
   |+ build/pom.xml (the build pom - no custom parent)
|- moduleB
   |+ pom.xml (parent is build pom)

Sembra che il pom root dovrebbe essere in qualche directory comune dentro 'di lavoro' dall'errore ma provato e non funziona, e non ha senso sul motivo per cui ho bisogno.

Che cosa significa l'avviso directory di base è un file che io faccia, invece ?! E poi figure che la directory di base è lavoro , che poi significa la directory di lavoro non si trova ... tutte le idee?

Grazie in anticipo.

Modifica

Dopo aver controllato la configurazione SCM sembra tutto ok per me ... in ogni modulo e il pom radice ho:

<scm>
<connection>
    scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</connection>
<developerConnection>
    scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</developerConnection>
</scm>

EDIT 2:

Forse ho colpito MRELEASE-261 ?

È stato utile?

Soluzione

Ho ottenuto questo lavoro utilizzando una versione più recente del plugin di rilascio. Il Maven super-pom ha una dipendenza v2.0 della versione plug-definito. Se non ignorare questo allora che verrà utilizzata la versione.
È possibile specificare una versione più recente quando si esegue il plugin

  mvn org.apache.maven.plugins:maven-release-plugin:2.2.1:perform

In alternativa, è possibile ignorare la versione dipendenza nel tuo POM

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.2.1</version>
  </plugin>

Altri suggerimenti

Non sono sicuro che si sta affrontando MRELEASE-516 (che è release:prepare circa). Tuttavia, mi chiedo se si dispone di informazioni corrette <scm> in ogni POM. Puoi confermare questo?

Working directory "E:\hudson\jobs\myHudsonJob\workspace\target\checkout\workspace" does not exist!

Ho appena visto la riga sopra nel registro. Sembra che avete un po 'irregolare da qualche impostazione percorso. Non si sovrascrive il posto di lavoro? Controllare la configurazione e cercare di eliminare il più possibile le impostazioni opzionali.

Nel mio caso gli stessi sintomi si è rivelato essere il risultato di un bug in Maven-release-plugin: 2.2.1. Vedere MRELEASE-705 .

Quindi, per eliminare l'errore, ho avuto modo di mettere questo nel pom genitore:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</build>

Questo errore è stato che si verificano per noi

Working directory E:\Data\myproject\target\checkout does not exist!

Siamo nel bel mezzo di una grande transizione di strumenti server e release:prepare Maven sembrava di essere in mancanza di silenzio, che rivendicano i tag e il numero di versione cambiamenti erano stati spinti senza errori. Tuttavia, dopo alcune ricerche, queste cose erano stati impegnati solo al repository git locale, non spinto - anche se la release:prepare stava eseguendo i comandi per eseguire una spinta, ma mai riportato un fallimento - anche con i parametri della riga di comando Maven -e e -X.

Stiamo usando Maven 3.3.9, rilascio Maven plug-2.5.3, e git cliente 2.9.2.

La nostra soluzione finale è stato a Aggiungi di una (o correggere la, come il vostro caso) definizione nel file di ~\.m2\settings.xml di Maven per il nostro server git (di origine master) tra cui username e password con i privilegi per spingere i tag (oltre che a spingere per master). Il id nella definizione server per il server git doveva essere l'hostname del server git:

<servers>
  <server>
    <id>git-server</id>
    <username>dan</username>
    <password>changeit</password>
  </server>
<servers>

Con questo aggiornamento, il completamento del tag sul server e alla cassa si è verificato con successo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top