maven-release-plugin: Effectuez échoue avec «répertoire de travail « ... espace de travail \ target \ caisse \ workspace »n'existe pas!

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

Question

Je projet Maven qui échoue lorsque la libération. Exécuter est appelée, si la libération, préparer des travaux comme prévu

J'ai trouvé le rapport de bogue (ci-dessous) qui semble bien ressembler à la question que j'ai, mais pas tout à fait sûr que je comprends le problème: MRELEASE516

Les dernières lignes de la sortie je reçois:

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

À la lecture du rapport de bogue la cause possible de l'erreur est liée à la structure de mes modules, j'ai essayé de décrire ci-dessous:

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

Il semble que la pom racine doit être dans un répertoire commun à l'intérieur « espace de travail » de l'erreur, mais essayé et ne fonctionne pas, ni donner un sens à la raison pour laquelle je en ai besoin.

Qu'est-ce que l'avertissement de base est un fichier veux que je fasse la place ?! Il figure alors que le répertoire de base est espace de travail qui signifie alors le répertoire de travail ne se trouve pas ... des idées?

Merci d'avance.

EDIT:

Après avoir vérifié la configuration SCM tout cela me semble ok pour ... dans chaque module et la pom racine je:

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

EDIT 2:

Peut-être que je frappé MRELEASE-261 ?

Était-ce utile?

La solution

Je suis arrivé ce travail en utilisant une version plus récente du plug-in de libération. Le Maven super pom a une dépendance sur v2.0 du plug-in de libération défini. Si vous ne remplacez pas alors que la version sera utilisée.
Vous pouvez spécifier une version plus récente lorsque vous exécutez le plugin

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

Ou vous pouvez remplacer la version de dépendance dans votre pom

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

Autres conseils

Je ne suis pas sûr que vous êtes confronté MRELEASE-516 (qui est A propos de release:prepare). Cependant, je me demande si vous avez des informations de <scm> correctes dans chaque POM. Pouvez-vous le confirmer?

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

Je viens de voir la ligne ci-dessus dans votre journal. Il semble que vous avez un chemin çela réglage quelque part. Avez-vous écrasez quelque part l'espace de travail? Vérifiez votre configuration et essayer d'éliminer autant que possible les paramètres facultatifs.

Dans mon cas, les mêmes symptômes avéré être le résultat d'un bogue dans maven-release-plugin: 2.2.1. Voir MRELEASE-705 .

Donc, pour se débarrasser de l'erreur, je dois tout mettre dans la pom-mère:

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

Cette erreur se produisait pour nous

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

Nous sommes au milieu d'une grande transition d'outils de serveur et de release:prepare de maven semblait échouer en silence, en faisant valoir les balises et les changements de numéro de version avait été poussé sans erreur. Cependant, après quelques recherches, ces choses n'avaient été commis au dépôt git local, pas poussé - même si le release:prepare exécutait les commandes pour effectuer une poussée mais jamais rapporté un échec - même avec les paramètres de ligne de commande -e Maven et -X.

Nous utilisons Maven 3.3.9, plugin version Maven 2.5.3, et le client git 2.9.2.

Notre solution finale était de Ajouter (ou corriger, comme cas) définition dans le fichier ~\.m2\settings.xml de Maven pour notre serveur git (maître d'origine) dont le nom d'utilisateur et mot de passe avec des privilèges pour pousser les balises (ainsi que poussant à maîtriser). Le id dans la définition du serveur pour le serveur git devait être le nom d'hôte du serveur git:

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

Avec cette mise à jour, la balise complète sur le serveur et la caisse a eu lieu avec succès.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top