2011-04-12 4 views
4

우리는 Hudson/Jenkins를 통해 RCP 응용 프로그램 용 Eclipse PDE 빌드를 수행하려고합니다. 우리는 지금까지 Windows 컴퓨터 (Windows Server 2003에서 실행되는 Hudson)에서이 작업을 성공적으로 수행했습니다. 우리는 CI 시스템을 유닉스 시스템으로 옮기기로 결정했습니다. 우리의 빌드가 다음 오류와 함께 실패 유닉스 시스템에서 동일한 빌드를 실행할 때 :유닉스 컴퓨터에서 Windows RCP 응용 프로그램 빌드

    : 이미 아무 소용이와 함께, 새로운 인프라로 이동 한 후 몇 가지를 시도했습니다
     
    !SESSION 2011-04-12 01:00:49.497 ----------------------------------------------- 
    eclipse.buildId=unknown 
    java.version=1.6.0_23 
    java.vendor=Sun Microsystems Inc. 
    BootLoader constants: OS=win32, ARCH=sparc, WS=win32, NL=en_US 
    Framework arguments: -application org.eclipse.ant.core.antRunner -buildfile /appl/midw/jenkins/jobs/AP_NAPF/workspace/TP/plugins/org.eclipse.pde.build_3.4.1.R34x_v20081217/scripts/build.xml main -Ddummy=true 
    Command-line arguments: -ws win32 -os win32 -application org.eclipse.ant.core.antRunner -buildfile /appl/midw/jenkins/jobs/AP_NAPF/workspace/TP/plugins/org.eclipse.pde.build_3.4.1.R34x_v20081217/scripts/build.xml main -data /appl/midw/jenkins/jobs/AP_NAPF/workspace/ap_build/workspace -Ddummy=true 
    
    !ENTRY org.eclipse.osgi 4 0 2011-04-12 01:00:58.961 
    !MESSAGE An error occurred while automatically activating bundle org.eclipse.ui.workbench (687). 
    !STACK 0 
    org.osgi.framework.BundleException: The activator org.eclipse.ui.internal.WorkbenchPlugin for bundle org.eclipse.ui.workbench is invalid 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:146) 
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:980) 
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:265) 
        at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) 
        at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) 
        at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:33) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:443) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
        at java.lang.ClassLoader.defineClass1(Native Method) 
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:165) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:554) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:524) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:455) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:443) 
        at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:423) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:315) 
        at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227) 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:139) 
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:980) 
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:265) 
        at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) 
        at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:234) 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1274) 
        at org.eclipse.ant.core.AntCorePreferences$WrappedClassLoader.findClass(AntCorePreferences.java:115) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
        at org.eclipse.ant.internal.core.AntClassLoader.loadClassPlugins(AntClassLoader.java:69) 
        at org.eclipse.ant.internal.core.AntClassLoader.findClass(AntClassLoader.java:47) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
        at org.eclipse.ant.core.AntRunner.run(AntRunner.java:510) 
        at org.eclipse.ant.core.AntRunner.start(AntRunner.java:600) 
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) 
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
        at java.lang.reflect.Method.invoke(Method.java:597) 
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) 
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) 
        at org.eclipse.equinox.launcher.Main.run(Main.java:1236) 
        at org.eclipse.equinox.launcher.Main.main(Main.java:1212) 
    Caused by: java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError 
        at java.lang.Class.getDeclaredConstructors0(Native Method) 
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
        at java.lang.Class.getConstructor0(Class.java:2699) 
        at java.lang.Class.newInstance0(Class.java:326) 
        at java.lang.Class.newInstance(Class.java:308) 
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:141) 
        ... 61 more 
    Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:483) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) 
        at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) 
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
        ... 67 more 
    Root exception: 
    java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError 
    

  • bootclasspath 등록 정보를 사용하여 PDE 빌드에 대해 다른 rt.jar (Windows JRE에서 오는 것)을 사용하십시오. solaris

는 RCP는 유닉스 시스템에서 Windows 응용 프로그램을 위해 구축해야 할 모든 가능한 그것을인가 :

  • -os 명령 행 인수를 장녕? 예인 경우 PDE 빌드를 시작할 때 매개 변수를 변경해야합니까?

    참고 : 우리는 pluginbuilder을 사용하여 PDE 빌드를 설정합니다.

  • 답변

    2

    PDE 빌드 (즉, org.eclipse.ant.core.antRunner 어플리케이션)를 실행하기 위해 사용하는 Eclipse는 빌드 서버 환경에서 실행 가능해야합니다. Unix 시스템에서 빌드를 실행 중이지만 ws 및 os 매개 변수는 win32로 설정되어 있습니다. 따라서 Unix 빌드 서버에서 Windows 버전의 Eclipse를 사용하는 것으로 보입니다. 유닉스 특유의 파편이 보통 거기에서 이용 가능하지 않기 때문에 (SWT를 위해 필요하다, SWTError 클래스가 발견되지 않는 이유이다) 이것은 작동하지 않을 수있다.

    빌드 서버 (OS, 윈도우 시스템 및 프로세서 아키텍처)의 사용자 환경에 맞는 eclipse.org에서 Eclipse를 다운로드하여 PDE 빌드를 실행해야합니다.

    +1

    'os = solaris','ws = sgtk' 및'arch = sparc'를 설정하면 SWTError가 제거됩니다. 나는 다음 길 블록을 치고있다 :-(. 답장을 보내 주셔서 감사합니다! – dfme

    1

    다운로드 eclipse delta pack, PDE 빌드를 시작하기 전에 대상 이클립스에 압축을 풉니 다.

    +0

    TP에는 이미 델타 팩의 플러그인이 포함되어 있습니다. – dfme

    +0

    불행하게도 타겟에있는 델타 패키지의 네이티브 라이브러리를 포함한다고해서 춘분이 플랫폼 별 빌드를 함께 만들 때 함께 배포된다는 것을 의미하지는 않습니다. 임시 해결책으로 델타 패키지의 플러그인 디렉토리에서 각각의 라이브러리 (예 :'linux.gtk.x86_64' 빌드의 경우'org.eclipse.swt.gtk.linux.x86_64_xxx.jar') 을 플러그인 디렉토리에 복사하면됩니다. 갓 내 보낸 빌드. 분명히 그것은 번들 프레임 워크가 필요한 것입니다. –

    0

    빌드와 함께 사용하는 Eclipse 설치에서 빌드를 수행하기 위해 사용하고있는 Eclipse를 분리해야합니다. 첫 번째 것은 빌드 OS에 맞게 수정해야합니다. PDE 빌드 호출을 살펴보십시오. Eclipse 설치 및 대상 플랫폼에 대한 별도의 매개 변수가 있습니다.

    관련 문제