【问题标题】:Build run from jenkins take much more time than build from cmd line从 jenkins 构建运行比从 cmd 行构建花费更多的时间
【发布时间】:2020-04-03 12:21:09
【问题描述】:

我正在尝试从 jenkins 运行与从 IDE 或 cmd 相同的构建。从 IDE/CMD 重建大约需要 3 分钟,从 jenkins 重建需要 60 分钟。

我使用基于 Eclipse 的 IDE 和 ant。 我从詹金斯管道的工作区使用这个命令

D:/programy/IngeDev_8.20.2.0/ingedevc.exe -data D:/ingedev/pipeline2server  -clean -nosplash -application org.eclipse.ant.core.antRunner -buildfile D:/ingedev/pipeline2server/demoApp02/Ant/build.xml SERVER_UAT

这个构建在 3 分钟内完成。

当我查看 jenkins build 时,我看到执行了相同的命令 1

构建需要 1 小时。

两种情况下的输出相同。在这两种情况下,我都会遇到异常

2019-12-10 10:39:38 ERROR ProtobufActivator:69 - Failed to create injector for com.google.eclipse.protobuf.Protobuf
2019-12-10 10:39:38 ERROR ProtobufActivator:70 - Workbench has not been created yet.
java.lang.IllegalStateException: Workbench has not been created yet.
    at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:93)
    at com.google.eclipse.protobuf.ui.util.Workbenches.activeWorkbenchWindow(Workbenches.java:37)
    at com.google.eclipse.protobuf.ui.ProtobufUiModule.<init>(ProtobufUiModule.java:69)
    at com.google.eclipse.protobuf.ui.internal.ProtobufActivator.getUiModule(ProtobufActivator.java:85)
    at com.google.eclipse.protobuf.ui.internal.ProtobufActivator.createInjector(ProtobufActivator.java:65)
    at com.google.eclipse.protobuf.ui.internal.ProtobufActivator.getInjector(ProtobufActivator.java:55)
    at com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory.getInjector(ProtobufExecutableExtensionFactory.java:26)
    at org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory.create(AbstractGuiceAwareExecutableExtensionFactory.java:49)
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262)
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
    at org.eclipse.xtext.internal.ResourceServiceProviderDescriptor.get(ResourceServiceProviderDescriptor.java:39)
    at org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl$InternalData.getServiceProvider(ResourceServiceProviderRegistryImpl.java:40)
    at org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl.getResourceServiceProvider(ResourceServiceProviderRegistryImpl.java:77)
    at org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl.getResourceServiceProvider(ResourceServiceProviderRegistryImpl.java:93)
    at org.eclipse.xtext.ui.resource.UriValidator.isValid(UriValidator.java:28)
    at org.eclipse.xtext.ui.resource.Storage2UriMapperImpl.isValidUri(Storage2UriMapperImpl.java:136)
    at org.eclipse.xtext.ui.resource.Storage2UriMapperImpl.getUri(Storage2UriMapperImpl.java:122)
    at org.eclipse.xtext.builder.impl.ToBeBuiltComputer.getUri(ToBeBuiltComputer.java:155)
    at org.eclipse.xtext.builder.impl.ToBeBuiltComputer.updateStorage(ToBeBuiltComputer.java:122)
    at org.eclipse.xtext.builder.impl.ToBeBuiltComputer$2.visit(ToBeBuiltComputer.java:108)
    at org.eclipse.core.internal.resources.Resource$2.visit(Resource.java:120)
    at org.eclipse.core.internal.resources.Resource$1.visitElement(Resource.java:84)
    at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:82)
    at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:87)
    at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:87)
    at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:129)
    at org.eclipse.core.internal.resources.Resource.accept(Resource.java:94)
    at org.eclipse.core.internal.resources.Resource.accept(Resource.java:52)
    at org.eclipse.core.internal.resources.Resource.accept(Resource.java:117)
    at org.eclipse.core.internal.resources.Resource.accept(Resource.java:105)
    at org.eclipse.xtext.builder.impl.ToBeBuiltComputer.updateProject(ToBeBuiltComputer.java:103)
    at org.eclipse.xtext.builder.impl.javasupport.JdtToBeBuiltComputer.updateProject(JdtToBeBuiltComputer.java:88)
    at org.eclipse.xtext.builder.impl.XtextBuilder.fullBuild(XtextBuilder.java:209)
    at org.eclipse.xtext.builder.impl.XtextBuilder.build(XtextBuilder.java:89)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:330)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:405)
    at org.eclipse.core.internal.resources.Project$1.run(Project.java:566)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2240)
    at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:544)
    at org.eclipse.core.internal.resources.Project.build(Project.java:120)
    at com.ingenico.ingedev.telium.ant.task.TeliumBuildTask.execute(TeliumBuildTask.java:245)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...

但是两种情况下的例外都是一样的,所以我认为这没关系。 我的计划是从 jenkins 运行 Ant 构建,因为 Ant 是 IDE 的一部分。 这是蚂蚁文件

<project name="Build" default="SERVER_UAT">

    <!-- Load the ant-contrib package (needed for the 'foreach' task). -->
    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
    </taskdef>

    <property name="debugflag" value="false"/>

    <property name="build.log.dir" location="${basedir}/buildlogs"/>
    <mkdir dir="${build.log.dir}"/>
    <tstamp>
        <format property="timestamp" pattern="yyyy-MM-dd_HH-mm-ss"/>
    </tstamp>

    <property name="build.log.filename" value="buildLog_${timestamp}.txt"/>
    <property name="rebuild.err.filename" value="buildErrors_${timestamp}.txt"/>

    <property name="exportDir" location="${basedir}/Delivery" />
    <property name="importDir" location="${basedir}/Delivery" />
    <property name="workspaceDir" location="${basedir}/../.." />

    <target name="initProjectName">
        <ingedev.getCurrentProjectName outputproperty="projectName"/>
    </target>   

    <target name="SERVER_UAT" depends="initProjectName">
        <record name="${build.log.dir}/${build.log.filename}" loglevel="info" append="false" action="start"/>
        <echo message="Build logged to ${build.log.filename}"/>

        <!-- ${ingedev.version} property is set to IngeDev version-->
        <echo message="IngeDev Version=">${ingedev.version}</echo>

        <echo message=""/>
        <echo message="**************************************************************"/>
        <echo>Building '${projectName}'... </echo>

        <echo message=""/>
        <echo message="**************************************************************"/>
        <echo message="Build ACTIVE Configuration"/>
        <ingedev.telium.build   
                        config="SERVER_UAT"     
                        project="${projectName}"
                        kind ="incremental"             
                        />

        <record name="${build.log.dir}/${build.log.filename}" loglevel="verbose" append="false" action="stop"/>
        <eclipse.refreshLocal resource="${projectName}" depth="infinite"/>
    </target>   

</project>

这是我的 Jenkins 文件

pipeline {
    agent any
    stages {
        stage('Build') {
            steps { 
                echo 'Building..'
                bat 'D:/programy/IngeDev_8.20.2.0/ingedevc.exe -data D:/ingedev/pipeline2server  -clean -nosplash -application org.eclipse.ant.core.antRunner -buildfile D:/ingedev/pipeline2server/demoApp02/Ant/build.xml SERVER_UAT'
            }
        }       
    }
}

谁能告诉我我做错了什么? 谢谢。

我在 Windows 10 的桌面上运行,Jenkins 版本。 2.190.3 和 blueocean 1.21.0 和 IDE 是 IngeDev 8.20.2

【问题讨论】:

    标签: eclipse jenkins ant


    【解决方案1】:

    防病毒软件会对构建时间产生重大影响。您能否禁用您的防病毒软件进行测试。

    【讨论】:

    • 嗨,我试过了,无论是否运行防病毒软件,构建时间都是相同的。
    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多