Maven-release-plugin: Realizar un error con 'directorio de trabajo ‘... espacio de trabajo \ con \ check out \ espacio de trabajo’ no existe!'

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

Pregunta

He maven proyecto que falla cuando la liberación:. Realice se llama, aunque la liberación; preparar trabajos como se esperaba

He encontrado el informe de error (abajo), que sin duda parece asemejarse al problema que tengo, pero no del todo seguro de entender el problema: MRELEASE516

Las últimas líneas de salida que recibo:

[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!

De la lectura del informe de error la posible causa del error está relacionado con la estructura de mis módulos, he tratado de esbozar a continuación:

/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)

Parece que el pom raíz debe estar en algún directorio común dentro 'espacio de trabajo' en el error, pero intentado eso y no funciona, ni tiene sentido de por qué lo necesito.

¿Qué significa la advertencia Directorio base es un archivo quieres que haga lugar ?! A continuación, las cifras que el directorio base es espacio de trabajo que a su vez significa que el directorio de trabajo no se encuentra ... alguna idea?

Gracias de antemano.

EDIT:

Después de haber comprobado la configuración de SMC todo se ve bien para mí ... en cada módulo y el pom raíz tengo:

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

EDIT 2:

Tal vez he acertado MRELEASE-261 ?

¿Fue útil?

Solución

Tengo este trabajo mediante el uso de una versión más reciente del complemento de liberación. El Maven súper pom tiene una dependencia en v2.0 de la liberación Plugin definido. Si no se sobreescribe esto entonces que se utilizará la versión.
Puede especificar una versión más reciente cuando se ejecuta el plugin

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

O se puede reemplazar la versión de la dependencia en su pom

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

Otros consejos

No estoy seguro de que estamos enfrentando MRELEASE-516 (que es release:prepare aproximadamente). Sin embargo, me pregunto si tiene información <scm> correctas en cada POM. ¿Puede confirmar esto?

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

acabo de ver la línea anterior en su registro. Parece que tienes algo de algún lugar configuración de la ruta chiflado. Cómo se sobrescribe el espacio de trabajo en alguna parte? Compruebe la configuración y tratar de eliminar lo más posible la configuración opcional.

En mi caso los mismos síntomas resultaron ser consecuencia de un fallo en la liberación maven-plugin: 2.2.1. Ver MRELEASE-705 .

Así que para deshacerse del error, tengo que poner esto en el pom padres:

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

Este error se produce por nosotros

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

Estamos en medio de una gran transición de herramientas de servidor y release:prepare Maven parecía estar en silencio en su defecto, que reclaman las etiquetas y los cambios de versión número había sido empujados sin error. Sin embargo, después de algunas investigaciones, estas cosas sólo se había comprometido con el repositorio Git local, no empujado - a pesar de que la release:prepare estaba ejecutando comandos para realizar un empujón, pero nunca informó un fracaso - incluso con los parámetros de línea de comandos -e experto y -X.

Estamos utilizando Maven 3.3.9, 2.5.3 plugin de maven liberación, y el cliente Git 2.9.2.

Nuestra solución final fue a añadir a (o corregir el, como su caso) definición en el archivo ~\.m2\settings.xml de Maven para nuestro servidor Git (origin master) incluyendo nombre de usuario y contraseña con privilegios para empujar las etiquetas (así como el impulso de dominar). El id en la definición de servidor para el servidor git tenía que ser el nombre del servidor git:

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

Con esta actualización, que se complete la etiqueta en el servidor y la caja se produjo con éxito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top