搭建自动化构建(jenkins)的过程中碰到了挺多问题,需要装各种插件解决。为了方便下次部署,这里先记录一下用到的插件及用途
下载war 首先从官网把hudson.war下载下来 hudson官网 :http://www.eclipse.org/hudson/ 启动安装: 两种方式:1.将hudson放入 tomcat容器中启动 2.hudson内嵌了jetty容器,你可以直接java -jar hudson.war --httpPort=xxx 跑起来,工程目录默认在 user/.hudson下 ps:刚启动的时候hudson会推荐一系列的插件,包括git等,按需安装吧 相关配置: git,maven 配置都比较简单,这里不再赘述,要注意的是下面的图例所示 ,基本能满足你的自动化构建需求了 ps:hudson和maven的版本有兼容问题,如果报Caused by: java.lang.ClassNotFoundException: org.apache.maven.cli.MavenLoggerManager
报错截图 在Linux下直接运行jenkins.war报错,导致启动失败 报错原因 运行端口已被其他进程占用 解决方法 换个启动端口就可以啦!
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 前言 在HRT,做好工作意味着不断学习和提高。作为不断学习的一部分,HRT的研究员也持续关注学术研究——无论是为了跟上他们研究领域的最新发展,还是为了学习对我们工作有用的进展。我们经常被问到,阅读和应用最新成果是否是我
问题 at hudson.WebAppMain$3.run(WebAppMain.java:234) Caused by: org.jvnet.hudson.reactor.ReactorException <init>(Jenkins.java:811) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.model.Hudson. <init>(Hudson.java:78) at hudson.WebAppMain$3.run(WebAppMain.java:222) Caused by: java.io.IOException :169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$7.runTask (Jenkins.java:901) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor
$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java <init>(Jenkins.java:904) at hudson.model.Hudson. <init>(Hudson.java:86) at hudson.model.Hudson. <init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:233) Caused: hudson.util.HudsonFailedToLoad at hudson.WebAppMain$3.run(WebAppMain.java:250) 这里注意红字的部分,提示配置文件中只支持1.0,而不是1.1。
Jenkins官网 Jenkins前身是Hudson,使用java语言开发的自动化发布工具。在中大型金融等企业中普遍使用Jenkins来作为项目发布工具。 Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。 在2010年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。 2011年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。 到2013年12月,GitHub上的Jenkins拥有567个项目成员和约1,100个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。
Jenkins官网 Jenkins前身是Hudson,使用java语言开发的自动化发布工具。在中大型金融等企业中普遍使用Jenkins来作为项目发布工具。 Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。 在2010年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。 2011年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。 到2013年12月,GitHub上的Jenkins拥有567个项目成员和约1,100个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。
<init>(Proc.java:252) at hudson.Proc$LocalProc. <init>(Proc.java:221) at hudson.Launcher$LocalLauncher.launch(Launcher.java:936) at hudson.Launcher at hudson.tasks.Maven.perform(Maven.java:368) at hudson.tasks.BuildStepMonitor$1.perform :741) at hudson.model.Build$BuildExecution.build(Build.java:206) at hudson.model.Build (AbstractBuild.java:504) at hudson.model.Run.execute(Run.java:1856) at hudson.model.FreeStyleBuild.run
> <parameterDefinitions> <hudson.model.ChoiceParameterDefinition> > </parameterDefinitions> </hudson.model.ParametersDefinitionProperty> <com.coravy.hudson.plugins.github.GithubProjectProperty '> <userRemoteConfigs> <hudson.plugins.git.UserRemoteConfig> > </userRemoteConfigs> <branches> <hudson.plugins.git.BranchSpec > <name>*/master</name> </hudson.plugins.git.BranchSpec>
$CreateTextTempFile.invoke(FilePath.java:1658) 16:21:35 at hudson.FilePath$CreateTextTempFile.invoke (FilePath.java:1628) 16:21:35 at hudson.FilePath.act(FilePath.java:1198) 16:21:35 at hudson.FilePath.act hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:92) 16:21:35 at hudson.tasks.BuildStepMonitor at hudson.model.Build$BuildExecution.doRun(Build.java:164) 16:21:35 at hudson.model.AbstractBuild$ ) 16:21:35 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) 16:21:35 at hudson.model.ResourceController.execute
:admin</permission> <permission>hudson.model.Hudson.Read:dongjicheng</permission> <permission >hudson.model.Hudson.Read:huanghuaicheng</permission> <permission>hudson.model.Hudson.Read:limeng </permission> <permission>hudson.model.Hudson.Read:liuxianpeng</permission> <permission>hudson.model.Hudson.Read :shaoxiaogang</permission> <permission>hudson.model.Hudson.Read:tangyi</permission> <permission >hudson.model.Item.Build:dongjicheng</permission> <permission>hudson.model.Item.Build:huanghuaicheng
(GitSCM.java:1152) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192) at hudson.scm.SCM.checkout (SCM.java:504) at hudson.model.AbstractProject.checkout(AbstractProject.java:1208) at hudson.model.AbstractBuild $AbstractBuildExecution.run(AbstractBuild.java:499) at hudson.model.Run.execute(Run.java:1810) at hudson.maven.MavenModuleSetBuild.run (MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:97 ) at hudson.model.Executor.run(Executor.java:429) ERROR: Error cloning remote repo 'origin' SSH: Current
29 PM jenkins.InitReactorRunner$1 onAttained INFO: Completed initialization Jan 27, 2016 1:46:29 PM hudson.WebAppMain $Downloadable load INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller Jan 27, 2016 1:46:48 PM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tasks.Ant.AntInstaller Jan 27, 2016 1:47:16 PM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tools.JDKInstaller Jan 27, 2016 1:47:16 PM hudson.model.AsyncPeriodicWork
Nov 16, 2020 6:19:14 AM hudson.remoting.jnlp.Main$CuiListener status INFO: Trying protocol: JNLP4-connect Nov 16, 2020 6:19:14 AM hudson.remoting.jnlp.Main$CuiListener status INFO: Remote identity confirmed INFO: Connecting to 192.168.1.8:50000 Nov 16, 2020 6:19:14 AM hudson.remoting.jnlp.Main$CuiListener $CuiListener status 信息: Handshaking 十一月 16, 2020 3:10:11 下午 hudson.remoting.jnlp.Main$CuiListener status 信息: Trying protocol: JNLP4-connect 十一月 16, 2020 3:10:12 下午 hudson.remoting.jnlp.Main$CuiListener status
> <hudson> <disabledAdministrativeMonitors> <string>hudson.diagnosis.ReverseProxySetupMonitor</ "/> <myViewsTabBar class="<em>hudson</em>.views.DefaultMyViewsTabBar"/> <clouds/> <quietPeriod>5</quietPeriod > <scmCheckoutRetryCount>0</scmCheckoutRetryCount> <views> <hudson.model.AllView> <owner class="<em>hudson</em>" reference="../../.."/> <name>all</name> <description>建立job后默认分类ALL</description $PropertyList"/> </hudson.model.AllView> <listView></listView> </views> <primaryView
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:872) at hudson.FilePath.act (FilePath.java:991) at hudson.FilePath.act(FilePath.java:969) at hudson.scm.SubversionSCM.checkout at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:872) at hudson.FilePath.act at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute
() return users 2.2、效果图 image.png 2.3、如何快速获取Jenkins上的所有Job activeJobs = hudson.model.Hudson.instance.items.findAll .* import hudson.* import hudson.security.* import java.util.* import com.michelin.cio.hudson.plugins.rolestrategy ")); permissions.add(Permission.fromId("hudson.model.Item.Build")); permissions.add(Permission.fromId ("hudson.model.Item.Workspace")); permissions.add(Permission.fromId("hudson.model.Item.Cancel")); // ")); permissions.add(Permission.fromId("hudson.model.Run.Update")); Role newRole = new Role(projectPrefix
查看Jenkins的WEB-INF/web.xml,可以得知Jenkins主对象为hudson.WebAppMain: ? 查看WebAppMain.java的源码,getHomeDir方法即用来确定Jenkins的主目录,其逻辑如下: 鉴于Hudson是Jenkins的前身,所以为了兼容Jenkins主目录的名称有:JENKINS_HOME 或HUDSON_HOME private static final String[] HOME_NAMES = {"JENKINS_HOME","HUDSON_HOME"}; 首先,会在JNDI(可在web.xml 配置文件中配置)中查找JENKINS_HOME或HUDSON_HOME 其次会在系统属性中查找JENKINS_HOME或HUDSON_HOME 接着会在环境变量中查找JENKINS_HOME或HUDSON_HOME 最后,如果上述都找不到,会默认选择 $user.home/.jenkins为JENKINS_HOME($user.home/.hudson为HUDSON_HOME) 附:WebAppMain.java
2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at hudson.Proc <init>(Proc.java:249) at hudson.Proc$LocalProc. <init>(Proc.java:218) at hudson.Launcher$LocalLauncher.launch(Launcher.java:936) at hudson.Launcher 1638) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:811) Caused: hudson.plugins.git.GitException (ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) Finished: FAILURE 解决方法