64bit - Eclipse RCP, upgrading from x32 to x64 platform: Automatic build still looks for x32 launcher plugin -
i'm upgrading rcp x32 x64.
i'm able export product within eclipse without issues when try export via automatic build doesn't work , gives me following error:
eclipse_3_7_64bit\plugins\org.eclipse.pde.build_3.7.0.v20111116-2009\scripts\productbuild\productbuild.xml:69: unable find plug-in: org.eclipse.equinox.launcher.win32.win32.x86_0.0.0. please check error log more details.
as far understand build looking x32 version of plugin when should instead x64 version.
i read here should add this
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
either did wrong or doesn't work.
this command use start build (works fine x32 builds):
""%javahome%\bin\java" -jar "%eclipse_location%\plugins\org.eclipse.equinox.launcher_1.2.0.v20110502.jar" -application org.eclipse.ant.core.antrunner -f "%build_source%\com.company.myproduct.rcp.setup\scripts\build.xml""
note search replaced company , product information!
build.xml
<project name="com.mytest.myproduct.rcp.build" default="buildfull"> <property file="build.properties" /> <!-- pde build company myproduct init step create build directories , copy plugins , features --> <target name="init"> <property name="respath" location="${ant.file}/../../resources"/> <mkdir dir="${builddirectory}" /> <mkdir dir="${builddirectory}/plugins" /> <mkdir dir="${builddirectory}/features" /> <!-- default plugins --> <copy todir="${builddirectory}/plugins"> <fileset dir="../.."> <include name="**" /> <exclude name="*/bin/" /> <exclude name="*.feature/**" /> <exclude name="*.lck" /> </fileset> </copy> <!-- mobile plugins --> <copy todir="${builddirectory}/plugins"> <fileset dir="../../../company_myproduct_mobile"> <include name="**" /> <exclude name="*/bin/" /> <exclude name="*.feature/**" /> <exclude name="*.lck" /> </fileset> </copy> <!-- features --> <copy todir="${builddirectory}/features"> <fileset dir="../.."> <include name="*.feature/**" /> </fileset> </copy> </target> <!-- start pde build --> <target name="pde-build"> <java classname="org.eclipse.equinox.launcher.main" fork="true" failonerror="true"> <arg value="-application" /> <arg value="org.eclipse.ant.core.antrunner" /> <arg value="-buildfile" /> <arg value="${eclipselocation}/plugins/org.eclipse.pde.build_${pdebuildpluginversion}/scripts/productbuild/productbuild.xml" /> <arg value="-dtimestamp=${timestamp}" /> <classpath> <pathelement location="${eclipselocation}/plugins/org.eclipse.equinox.launcher_${equinoxlauncherpluginversion}.jar" /> </classpath> </java> </target> <!-- clean build directory --> <target name="clean"> <!-- <delete dir="${builddirectory}" /> --> </target> <target name="build" depends="clean, init, pde-build" /> <!-- ================================= target: buildfull ================================= --> <target name="buildfull" depends="build" description="builds until executable version available"> <available file="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}.zip" property="buildzipok"/> <antcall target="unzipbuildoutputandcopyexe"/> </target> <!-- - - - - - - - - - - - - - - - - - target: unzipbuildoutput - - - - - - - - - - - - - - - - - --> <target name="unzipbuildoutputandcopyexe" if="buildzipok"> <!-- unzip file --> <unzip src="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}.zip" dest="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}"/> <copy file="${respath}/company myproduct.exe_" tofile="${builddirectory}/${buildlabel}/${buildid}-${baseos}.${basews}.${basearch}/${archiveprefix}/company myproduct.exe"></copy> </target> </project>
productbuild.xml
<project name="build product" default="main"> <!-- ===================================================================== --> <!-- global properties. see build.properties information on --> <!-- properties callers can control. --> <!-- ===================================================================== --> <property name="allelementsfile" value="${eclipse.pdebuild.scripts}/productbuild/allelements.xml"/> <import file="${eclipse.pdebuild.scripts}/build.xml"/> <property name="pluginpath" value=""/> <property name="pluginlist" value=""/> <property name="featurelist" value=""/> <property name="includelaunchers" value="true"/> <property name="generatedbuildproperties" value=""/> <condition property="nestedinclusions" value="true"> <istrue value="${p2.gathering}" /> </condition> <!-- ===================================================================== --> <!-- main entry point setup, fetch, generate, build etc. use --> <!-- customtargets.xml modify build behaviour. --> <!-- ===================================================================== --> <target name="main" description="the main build target"> <antcall target="prebuild" /> <antcall target="processrepos"/> <antcall target="generatefeature"> <!-- generate feature drive fetch --> <param name="verify" value="false"/> </antcall> <antcall target="fetch" /> <antcall target="generatefeature"> <!-- calling generate feature second time can pack / unpack clause fixed --> <param name="verify" value="true"/> </antcall> <antcall target="generate" /> <antcall target="process" /> <antcall target="assemble" /> <antcall target="package" /> <antcall target="postbuild" /> </target> <!-- ===================================================================== --> <!-- generate container feature based on product file --> <!-- plugin or feature containing .product file need exist --> <!-- already, use presetup or postsetup fetch if necessary --> <!-- ===================================================================== --> <target name="generatefeature"> <eclipse.generatefeature featureid="org.eclipse.pde.build.container.feature" builddirectory="${builddirectory}" baselocation="${baselocation}" productfile="${product}" verify="${verify}" pluginpath="${transformedrepolocation}${path.separator}${pluginpath}" configinfo="${configs}" pluginlist="${pluginlist}" featurelist="${featurelist}" includelaunchers="${includelaunchers}" buildpropertiesfile="${generatedbuildproperties}" nestedinclusions="${nestedinclusions}" filterp2base="${filterp2base}" /> </target> </project>
allelements.xml
<project name="product build allelements delegator"> <property name="defaultassemblyenabled" value="true" /> <property name="archivenameprefix" value="${buildid}"/> <!-- ===================================================================== --> <!-- run given ${target} on elements being built --> <!-- add on <ant> task each top level element being built. --> <!-- ===================================================================== --> <target name="allelementsdelegator"> <ant antfile="${generictargets}" target="${target}"> <property name="type" value="feature" /> <property name="id" value="org.eclipse.pde.build.container.feature" /> </ant> </target> <!-- ====================================================================== --> <!-- default assemble target, called assemble each --> <!-- config if custom assemble target not defined. --> <!-- following properties defined: --> <!-- config : configuration being assembled eg "win32.win32.x86" --> <!-- element: element being assembled eg "org.eclipse.sdk" --> <!-- assemblescriptname: assemble script called --> <!-- ====================================================================== --> <target name="defaultassemble"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-${config}.zip"/> </ant> </target> <!-- ===================================================================== --> <!-- targets assemble built elements particular configurations --> <!-- these call generated assemble scripts (named in --> <!-- ${assemblescriptname}) may add pre , post processing --> <!-- add 1 target each root element , each configuration --> <!-- ===================================================================== --> <target name="assemble.org.eclipse.pde.build.container.feature"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-win32.win32.x86.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86_64" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.win32.win32.x86_64"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-win32.win32.x86_64.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.ppc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.ppc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-linux.gtk.ppc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-linux.gtk.x86.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-linux.gtk.x86_64.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.linux.motif.x86" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.linux.motif.x86"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-linux.motif.x86.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.solaris.motif.sparc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.solaris.motif.sparc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-solaris.motif.sparc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.solaris.gtk.sparc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.solaris.gtk.sparc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-solaris.gtk.sparc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.aix.motif.ppc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.aix.motif.ppc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-aix.motif.ppc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.hpux.motif.pa_risc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.hpux.motif.pa_risc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-hpux.motif.pa_risc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.ppc" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.ppc"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-macosx.carbon.ppc.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.x86" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.macosx.carbon.x86"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-macosx.carbon.x86.zip"/> </ant> </target> <property name="assemble.org.eclipse.pde.build.container.feature.group.group.group" value="true" /> <target name="assemble.org.eclipse.pde.build.container.feature.group.group.group"> <ant antfile="${assemblescriptname}" dir="${builddirectory}"> <property name="archivename" value="${archivenameprefix}-group.zip"/> </ant> </target> </project>
build.properties
# version of org.ecilpse.pdebuild pdebuildpluginversion=3.7.0.v20111116-2009 # version of org.eclipse.equinox.launcher equinoxlauncherpluginversion=1.2.0.v20110502 # productversion productversion=00.00test0 ############# base location ######################### # # specify directory of base under # build target located. directory should # contain rcp runtime binary want # compile against. # ##################################################### base=//server/eclipse/eclipse_3_7_64bit ############# eclipse location ###################### # # specify directory of eclipse installation # used execute pde build. # ##################################################### eclipselocation=//server/eclipse/eclipse_3_7_64bit ############# product/packaging control ############# product=/ com.mytest.myproduct.rcp/myproduct.product runpackager=false #set name of archive result product build. #archivenameprefix= # prefix used in generated archive. archiveprefix=myproduct # location underwhich of build output collected. collectingfolder=${archiveprefix} # list of {os, ws, arch} configurations build. # value '&' separated list of ',' separate triples. example, # configs=win32,win32,x86 & linux,motif,x86 # default value *,*,* #configs = *, *, * configs=win32,win32,x86_64 ##& \ # linux, gtk, ppc &\ # linux, gtk, x86 & \ # linux, gtk, x86_64 & \ # linux, motif, x86 & \ # solaris, motif, sparc & \ # solaris, gtk, sparc & \ # aix, motif, ppc & \ # hpux, motif, pa_risc & \ # macosx, carbon, ppc # default pde creates 1 archive (result) per entry listed in configs property. # setting value try cause pde create 1 output containing # artifacts platforms listed in configs property. #groupconfigurations=true #the format of archive. default zip created using antzip. #the list can contain configuration desired format different zip. #archivesformat=win32, win32, x86 - antzip& \ # linux, gtk, ppc - antzip &\ # linux, gtk, x86 - antzip& \ # linux, gtk, x86_64 - antzip& \ # linux, motif, x86 - antzip& \ # solaris, motif, sparc - antzip& \ # solaris, gtk, sparc - antzip& \ # aix, motif, ppc - antzip& \ # hpux, motif, pa_risc - antzip& \ # macosx, carbon, ppc - antzip #set true if want output ready update jar (no site.xml generated) #outputupdatejars = false #set true jnlp generation #codebase should url used root of relative urls in output. #generatejnlp=false #jnlp.codebase=<codebase url> #jnlp.j2se=<j2se version> #jnlp.locale=<a locale> #jnlp.generateofflineallowed=true or false generate <offlineallowed/> attribute in generated features #jnlp.configs=${configs} #uncomment filter content of generated jnlp files based on configuration being built #set true if want sign jars #signjars=false #sign.alias=<alias> #sign.keystore=<keystore location> #sign.storepass=<keystore password> #arguments send zip executable zipargs= #arguments send tar executable tarargs= #control creation of file containing version included in each configuration - on default generateversionslists=false ############## build naming control ################ # directory build elements fetched , # build takes place. builddirectory=d:/ccviews/.myproduct2_cr_0065098_dev/java/build_00.00test0 # type of build. used in naming build output. typically value # 1 of i, n, m, s, ... buildtype=r # id of build. used in naming build output. buildid=myproductbuild # label build. used in naming build output buildlabel=build_output # timestamp build. used in naming build output timestamp=007 #the value used qualifier of plugin or feature when want override value computed pde. #the value applied plugin or features indicating build.properties, qualifier = context #forcecontextqualifier=testi #enable / disable generation of suffix features use .qualifier. #the generated suffix computed according content of feature #generatefeatureversionsuffix=true ############# base control ############# # settings base eclipse components , java class libraries # against building. # base location build needs compile against. example, # in rcp app or plug-in, baselocation should location of # installed eclipse against application or plug-in code compiled , rcp delta pack. baselocation=${eclipselocation} #os/ws/arch/nl of eclipse specified baselocation baseos=win32 basews=win32 basearch=x86 #this property indicates whether want set of plug-ins , features considered during build limited ones reachable features / plugins being built filtereddependencycheck=false #pluginpath list of locations in find plugins , features. list separated platform file separator (; or :) #a location 1 of: #- location of jar or folder plugin or feature : /path/to/foo.jar or /path/to/foo #- directory contains /plugins or /features subdirectory #- location of feature.xml, or 2.1 style plugins, plugin.xml or fragment.xml #pluginpath= skipbase=true eclipseurl=<url eclipse download site> eclipsebuildid=<id of eclipse build get> eclipsebaseurl=${eclipseurl}/eclipse-platform-${eclipsebuildid}-win32.zip ############# map file control ################ # section defines cvs tags use when fetching map files repository. # if want fetch map file repository / location, change getmapfiles target in customtargets.xml skipmaps=true mapsrepo=:pserver:anonymous@example.com/path/to/repo mapsroot=path/to/maps mapscheckouttag=head #tagmaps=true mapstagtag=v${buildid} ############ repository control ############### # section defines properties parameterizing repositories plugins, fragments # bundles , features being obtained from. # tags use when fetching elements build. # default thebuilder use whatever in maps. # value takes form of comma separated list of repository identifier (like used in map files) , # overriding value # example fetchtag=cvs=head, svn=v20050101 # fetchtag=head skipfetch=true ############# java compiler options ############## # location of java jars compile against. typically rt.jar jdk/jre #bootclasspath=${java.home}/lib/rt.jar # specific jre locations compile against. these values used compile bundles specifying # bundle-requiredexecutionenvironment. uncomment , set values environments support #cdc-1.0/foundation-1.0= /path/to/rt.jar #cdc-1.1/foundation-1.1= #osgi/minimum-1.0= #osgi/minimum-1.1= #jre-1.1= #j2se-1.2= #j2se-1.3= #j2se-1.4= #j2se-1.5= #javase-1.6= #personaljava-1.1= #personaljava-1.2= #cdc-1.0/personalbasis-1.0= #cdc-1.0/personaljava-1.0= #cdc-1.1/personalbasis-1.1= #cdc-1.1/personaljava-1.1= # specify output format of compiler log when eclipse jdt used logextension=.log # whether or not include debug info in output jars javacdebuginfo=false # whether or not fail build if there compiler errors javacfailonerror=true # enable or disable verbose mode of compiler javacverbose=true # arguments compiler. these specific java compiler being used. #compilerarg= # default value version of source code. value used when compiling plug-ins not set bundle-requiredexecutionenvironment or set javacsource in build.properties javacsource=1.6 # default value version of byte code targeted. value used when compiling plug-ins not set bundle-requiredexecutionenvironment or set javactarget in build.properties. javactarget=1.6
the line
configs=win32, win32, x86
in build properties specifies windows 32 bit build ('x86' means 32 bit).
use
configs=win32, win32, x86_64
for 64 bit ('x86_64').
you need specify 64 bit eclipse in configuration.
Comments
Post a Comment