Hudson-参数化构建

本文介绍如何在Hudson中设置参数化构建,包括定义不同类型的参数(如字符串参数和文件参数),通过URL启动构建,以及一些局限性和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


原​文​链​接​:http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Build

有​些​时​候​让​你​的​构​建​包​含​几​个​“参​数​”是​非​常​有​用​的​。​考​虑​下​面​的​情​况​:

  • 你​在​Hudson内​建​立​了​一​个​测​试​Job,它​允​许​发​布​包​作​为​一​个​参​数​绑​定​到​Job中​,并​针​对​这​个​发​布​包​测​试​。​你​希​望​所​有​的​开​发​人​员​在​本​地​构​建​,然​后​提​交​构​建​,最​后​在​Hudson内​测​试​。​这​种​情​况​下​,你​的​参​数​就​是​一​个​包​含​发​布​包​的​zip文​件​。​

  • 你​的​测​试​套​件​全​部​运​行​需​要​很​长​的​时​间​,通​常​你​不​需​要​执​行​整​个​的​测​试​周​期​。​所​以​你​希​望​执​行​部​分​测​试​,这​种​情​况​下​你​的​参​数​会​是​一​个​字​符​串​,用​来​控​制​执​行​测​试​套​件​的​哪​部​分​。​

参​数​可​以​作​为​一​个​环​境​变​量​使​用​,举​例​来​说​,在​Shell 中​是​($FOO, %FOO%) 或​者​在​Ant 中​是​(${env.FOO}) ,都​能​访​问​到​参​数​的​值​。​

1. 定​义​参​数​

首​先​,你​需​要​在​你​的​Job配​置​里​选​上​“This build is parameterized”,然​后​再​按​钮​的​下​拉​菜​单​中​选​择​你​需​要​的​参​数​。

图 1. 参​数​定​义​

有​多​种​参​数​类​型​可​供​使​用​,并​且​是​可​以​扩​展​的​。​参​数​的​生​效​方​式​也​有​所​不​同​,这​取​决​于​你​的​依​赖​的​参​数​类​型​。​

1.1. 字​符​串​参​数​

字​符​串​参​数​会​被​作​为​一​个​同​名​的​变​量​加​入​到​环​境​变​量​中​。​所​以​像​Ant 和​Shell 这​样​的​构​建​器​可​以​使​用​这​个​参​数​。​继​续​上​面​的​例​子​,下​面​是​一​个​简​单​的​例​子​:

  1. 在​构​建​器​中​使​用​名​字​引​用​参​数​。​使​用​“env”命​令​可​以​列​出​环​境​变​量​,然​后​用​“echo”命​令​演​示​如​何​引​用​参​数​:

    图 2. 参​数​使​用​
  2. 运​行​这​个​构​建​观​察​log输​出​(为​了​安​全​和​简​洁​,我​省​略​了​一​些​变​量​输​出​):

    started
    [workspace] $ /bin/sh -xe /opt/apache-tomcat-6.0.14/temp/hudson20854.sh
    + env
    BAR=bat
    ...
    [workspace] $ /bin/sh -xe /opt/apache-tomcat-6.0.14/temp/hudson20855.sh
    + echo the value of bar is bat
    the value of bar is bat
    finished: SUCCESS

Ant同​样​可​用​,比​如​使​用​Ant的​属​性​选​择​功​能​,定​义​一​个​构​建​属​性​:

my.prop=${env.BAR}

注​意​在​Windows 和​Unix 不​同​环​境​下​大​小​写​是​敏​感​的​,所​有​的​来​自​参​数​的​环​境​变​量​都​要​用​大​写​。​

1.2. 文​件​参​数​

文​件​参​数​允​许​构​建​接​受​一​个​文​件​,是​当​计​划​一​个​新​构​建​时​由​用​户​提​交​的​。​在​check-out/update之​后​文​件​会​放​置​在​workspace下​,你​的​构​建​脚​本​可​以​使​用​这​个​文​件​。​

2. 自​定​义​参​数​类​型​

有​个​插​件​可​以​定​制​参​数​类​型​。​请​查​看​参​数​定​义​。​

3. 通​过​参​数​启​动​构​建​
参​数​是​区​分​大​小​写​的​!

当​通​过​URL传​递​参​数​时​,大​小​写​很​重​要​!例​如​,token=TOKEN&MESSAGE=yo 将​不​会​使​定​义​的​参​数​Message 生​效​。​

  • 可​以​通​过​一​个​URL就​能​启​动​构​建​

    http://server/job/myjob/buildWithParameters?PARAMETER=Value
    
    

要​想​用​wget ,你​需​要​把​URL用​引​号​引​起​来​。​

显​然​,参​数​delay=0sec 能​够​被​使​用​。​

  • 如​果​你​使​用​一​个​授​权​token来​触​发​构​建​(JobConfigureBuild TriggersTrigger builds remotely ),你​可​以​访​问​:

    http://server/job/myjob/buildWithParameters?token=TOKEN/&PARAMETER=Value
    
    

注​意​/&

4. 局​限​性​

当​前​需​要​知​道​下​面​的​问​题​:

  • 当​使​用​构​建​触​发​器​开​始​一​个​构​建​时​,它​无​法​知​道​如​何​传​递​参​数​,这​包​括​SCM轮​询​,下​游​构​建​和​周​期​构​建​。​这​时​会​使​用​默​认​值​代​替​,包​括​字​符​串​型​、​布​尔​型​和​选​择​型​参​数​。​

5. 未​解​决​问​题​

如​何​传​递​配​置​参​数​给​Maven构​建​?比​如​,我​已​经​有​一​个​Maven构​建​和​一​个​指​定​的​配​置​,但​必​须​让​Hudson以​字​符​串​参​数​的​形​式​传​递​给​他​。​

基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
MPU6050是一款广泛应用在无人机、机器人和运动设备中的六轴姿态传感器,它集成了三轴陀螺仪和三轴加速度计。这款传感器能够实时监测并提供设备的角速度和线性加速度数据,对于理解物体的动态运动状态至关重要。在Arduino平台上,通过特定的库文件可以方便地与MPU6050进行通信,获取并解析传感器数据。 `MPU6050.cpp`和`MPU6050.h`是Arduino库的关键组成部分。`MPU6050.h`是头文件,包含了定义传感器接口和函数声明。它定义了类`MPU6050`,该类包含了初始化传感器、读取数据等方法。例如,`begin()`函数用于设置传感器的工作模式和I2C地址,`getAcceleration()`和`getGyroscope()`则分别用于获取加速度和角速度数据。 在Arduino项目中,首先需要包含`MPU6050.h`头文件,然后创建`MPU6050`对象,并调用`begin()`函数初始化传感器。之后,可以通过循环调用`getAcceleration()`和`getGyroscope()`来不断更新传感器读数。为了处理这些原始数据,通常还需要进行校准和滤波,以消除噪声和漂移。 I2C通信协议是MPU6050与Arduino交互的基础,它是一种低引脚数的串行通信协议,允许多个设备共享一对数据线。Arduino板上的Wire库提供了I2C通信的底层支持,使得用户无需深入了解通信细节,就能方便地与MPU6050交互。 MPU6050传感器的数据包括加速度(X、Y、Z轴)和角速度(同样为X、Y、Z轴)。加速度数据可以用来计算物体的静态位置和动态运动,而角速度数据则能反映物体转动的速度。结合这两个数据,可以进一步计算出物体的姿态(如角度和角速度变化)。 在嵌入式开发领域,特别是使用STM32微控制器时,也可以找到类似的库来驱动MPU6050。STM32通常具有更强大的处理能力和更多的GPIO口,可以实现更复杂的控制算法。然而,基本的传感器操作流程和数据处理原理与Arduino平台相似。 在实际应用中,除了基本的传感器读取,还可能涉及到温度补偿、低功耗模式设置、DMP(数字运动处理器)功能的利用等高级特性。DMP可以帮助处理传感器数据,实现更高级的运动估计,减轻主控制器的计算负担。 MPU6050是一个强大的六轴传感器,广泛应用于各种需要实时运动追踪的项目中。通过 Arduino 或 STM32 的库文件,开发者可以轻松地与传感器交互,获取并处理数据,实现各种创新应用。博客和其他开源资源是学习和解决问题的重要途径,通过这些资源,开发者可以获得关于MPU6050的详细信息和实践指南
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值