从jenkins进行构建运行要比从cmd行进行构建花费更多的时间

问题描述 投票:0回答:1

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

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

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分钟内完成。

[当我查看詹金斯构建时,我看到执行了相同的命令“文本](https://stackoverflow.com/image.jpg)[![在此处输入图像说明]” >

构建需要1个小时。

在两种情况下输出都是相同的。在两种情况下,我都会例外

1

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

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)
...

这是我的詹金斯档案

<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>

有人可以告诉我我在做什么错吗?谢谢。

我正在Windows 10的Jenkins版本的台式机上运行。带有blueocean 1.21.0和IDE的2.190.3是IngeDev 8.20.2

我正在尝试从jenkins运行与IDE或cmd相同的构建。从IDE / CMD重建大约需要3分钟,而詹金斯则需要60分钟。我将基于eclipse的IDE与ant一起使用。我从...

eclipse jenkins ant
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.