9
votes

Pourquoi les Jenkins ignorent-elles la variable% du chemin de chemin lors de l'utilisation de Msbuild?

J'essaie d'utiliser Jenkins pour compiler mon projet Msbuild créé avec Delphi. J'ai le plug-in Msbuild installé dans Jenkins et configuré. Je choisis la configuration spécifique de mon travail de construction.

J'ai défini toutes les variables environnementales de Jenkins requises par le compilateur Delphi (de Rsvars.Bat pour vous Types Delphi.) P>

Le Le projet compile tout simplement bien sur la ligne de commande. Si je le fais sur la ligne de commande, Msbuild rapporte un bon chemin gras (le correct) dans le cadre de la ligne de commande qu'il utilise pour appeler le compilateur DELPHI. P>

Cependant, lorsque j'essaie de l'utiliser Avec Jenkins, le résultat est assez différent: p>

C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\dcc32.exe -$D- -$L- -$Y- --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE -K00400000   HTMLWriterTestApp.dpr   
  Embarcadero Delphi for Win32 compiler version 22.0
  Copyright (c) 1983,2010 Embarcadero Technologies, Inc.


0 commentaires

4 Réponses :


17
votes

Selon la façon dont vous exécutez Jenkins, il peut ne pas avoir la ligne de chemin complète que vous avez utilisée pour voir. Par exemple, si vous exécutez Jenkins sous forme de service Windows et que vous avez la variable de chemin de votre utilisateur peuplée, vous ne l'aurez pas nécessairement peuplé pour l'utilisateur du système. Dans ce cas, modifiez le compte de connexion utilisé par le service pour être votre compte plutôt qu'un système.


3 commentaires

Oui! C'était ça! Merci très beaucoup. Cela me conduisait de noix.


Une belle application à avoir à portée de main est une éditeur d'environnement rapide (sur www.rapeeee.com) que vous pouvez taper une telle chose très rapidement ....


Fabrico - +1 sur l'éditeur d'environnement rapide. Super outil.



5
votes

J'ai Jenkins en cours d'exécution sur un serveur à l'intérieur de Glassfish, en cours d'exécution en tant que compte système local, comme il a été installé, En utilisant une dérivation de ce blog Publier , et j'ai pu le faire fonctionner en définissant des variables de propriété dans la" Configuration du système "(plug-in d'injecteur de jénkins Environment) à Jenkins. (BDS, BDSCommondi, FrameworkDir, FrameworksDkdir, etc.)

Puis l'astuce pour Delphi pour ramasser le chemin approprié consiste à envoyer le paramètre de ligne de commande "Win32LibraryPath" à Msbuild. Assurez-vous d'échapper à vos guillemets doubles dans ce paramètre à Jenkins ou vous allez sortir vos cheveux.


0 commentaires

3
votes

J'avais Jenkins a commencé comme service Windows et il n'a pas pu trouver une commande SVN même si j'avais Svn \ bin dans ma variable de chemin pour l'utilisateur du système.

Il semble que le service utilise uniquement les variables d'environnement disponibles au moment du démarrage. Donc, si plus tard, vous ajoutez de plus en plus de varibes d'environnement à l'utilisateur du système Windows, ils ne seront pas disponibles pour le service. Tout ce que vous avez à faire est de redémarrer le service de la fenêtre et il choisira les nouvelles variables d'environnement!


0 commentaires

1
votes

Quelque chose avec git tire / où les commandes GIT, qui ne s'exécutent pas de Jenkins sont en raison du problème de chemin dans les variables environnementales de Windows.

  1. Vérifiez le chemin dans les variables d'environnement.
  2. Vérifiez que la même commande exécute à partir de l'invite de commande Windows ou non.
  3. S'il est exécutant et que Windows fonctionne comme service esclave, puis redémarrez le service esclave de services.msc . .
  4. Déconnectez-vous et connectez-vous à Jenkins.

0 commentaires