2

Vistaでhudsonを実行し、MSBuild for C ++ソリューション(VS 2008)を呼び出しています。

既存のユーザーまたはシステム環境変数をエクスポートする方法を見つけることができませんでした。

ハドソンを介して手動で環境変数を設定することはできますが、そうすることは好みません。すでに設定されている既存の変数を使用したいと思います。これを行う方法はありますか?

基本的に、env変数のリストから選択して、それらをマップする/それらを生成するプロセス/ワークスペースにエクスポートするようにhudsonに指示できるようにしたいと思います。

ハドソンはサービスとして実行されています。

4

6 に答える 6

3

環境全体のセットアップの問題を回避するために、 msbuildプラグインを試すことができます。プラグインをmsbuildの場所にポイントするだけで、そこからすべてが機能します。

于 2009-07-17T19:21:26.247 に答える
2

ここから必要なものを入手してください:

%comspec%/ k "" h:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat "" x86

于 2009-07-17T19:26:16.190 に答える
2

最新バージョンのHudson(1.316)をダウンロードし、単に「set」を実行するジョブを作成して、簡単なテストを行いました(これに慣れていない場合は、コンソールでsetを単独で実行すると、内のすべての環境変数が一覧表示されます。現在のスコープ)。

これがコンソール出力です。これらはすべて環境変数です。ユーザーとシステムに加えて、Hudsonメタ情報をジョブで利用できるようにするためにHudson自体によって定義された変数です。

Started by user anonymous
[workspace] $ cmd /c call D:\Temp\hudson5023210513071219278.bat

C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\jack\Application Data
BUILD_ID=2009-07-19_22-59-42
BUILD_NUMBER=1
BUILD_TAG=hudson-Environment Variable Test-1
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=BEEBLEBROX
ComSpec=C:\WINNT\system32\cmd.exe
EXECUTOR_NUMBER=0
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\jack
HUDSON_COOKIE=a0bc798a-20ab-40bc-aad6-f4a331567999
HUDSON_HOME=C:\Documents and Settings\jack\.hudson
JAVA_HOME=c:\program files\java\jdk1.6.0
JOB_NAME=Environment Variable Test
LOGONSERVER=\\BEEBLEBROX
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Os2LibPath=C:\WINNT\system32\os2\dll;...blah...blah...blah...
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 15 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0f00
ProgramFiles=C:\Program Files
PROMPT=$P$G
QTJAVA=C:\Program Files\Java\jre1.6.0\lib\ext\QTJava.zip
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=D:\Temp
TMP=D:\Temp
USERDOMAIN=BEEBLEBROX
USERNAME=jack
USERPROFILE=C:\Documents and Settings\jack
windir=C:\WINNT
WORKSPACE=C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace

C:\Documents and Settings\jack\.hudson\jobs\Environment Variable Test\workspace>exit 0 
Finished: SUCCESS

あなたの変数は、ハドソンプロセスの所有者の環境内で単純に定義されていないのではないかと思います(またはそのようなもの、実際に知るためにあなたのハドソンの設定に関する詳細情報が必要になります)。


編集:別の注意点として、/ systemInfoを見ると、Hudsonで使用できるすべてのシステムプロパティと環境変数を確認できます。Hudsonが作業を行うために新しいプロセスを生成するとき、Hudsonが最初に明示的に削除しない限り、すべての環境変数を子プロセスで使用できるようにする必要があることに注意してください(これはJavaよりもオペレーティングシステムの性質であると私は信じています)。したがって、特定の環境変数の削除について詳しく説明しているドキュメントが表示されない限り(そうであれば、開発者には理由があると確信しています)、最初に変数がハドソンで利用可能かどうかを確認します。 。

于 2009-07-20T04:10:18.760 に答える
1

私も同じ問題を抱えています。私はMSBuildプラグインを使用していますが、msbuildプロジェクトファイルは次のとおりです。

<?xml version = "1.0" encoding = "Windows-1252"?>
<Project xmlns = " http://schemas.microsoft.com/developer/msbuild/2003"&gt ;
<Target Name = "FooCompilation">
<Message Text = "INCLUDE:$(INCLUDE)" />
<Message Text = "LIB:$(LIB)" />
<Message Text = "PATH:$(Path)" />
<MSBuild Projects = "Proj1.vcproj" Properties = "Configuration = Release" />
</ Target>
</ Project>

このファイルはコンソールで、ハドソン出力で動作します:

ターゲットFooCompilation:INCLUDE: "C:\ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Include" LIB: "C:\ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Lib" PATH: "C:\ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Bin "; C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem; c:\ Program Files \ Microsoft SQL Server \ 90 \ Tools \ binn \ __________________________________________________

しかし、INCLUDEパスがthrow MSBuild Taskを渡さなかったため、ビルドが失敗しました...

于 2010-01-21T10:57:29.247 に答える
0

ビルドファイルとバッチファイルは2つの別個のものであり、バッチファイルに入力を送信する場合と同じように、バッチファイルはビルドから生成されるすべてのエラーを食いつぶします。

于 2009-07-17T19:25:09.093 に答える
0

ティム、

Hudsonは、多くのパラメータを環境変数としてエクスポートします。次に例を示します。

BUILD_ID=2012-03-19_12-43-52
BUILD_NUMBER=74
HUDSON_HOME=C:\Documents and Settings\john\.hudson

Hudson v2.0.1の時点では、ビルドを開始したHudson-Userもあります。

HUDSON_USER=dan

環境変数の完全なリストはここにあります:Hudson Set Environment Variables

他のパラメーターをジョブに渡したい場合は、Hudsonのパラメーター化されたビルドを使用するのが最善の方法です。

Windowsの場合は、「%MY_PARAM% 」という規則を使用する必要があることに注意してください(Unixでは「 $ MY_PARAM 」の場合は代わりに)。

于 2012-06-04T08:04:24.737 に答える