在某个功能上执行eclipse.buildscript任务时会错过该片段

时间:2022-09-11 19:51:47

I have a feature called foo, plugin called foo, and a single fragment foo.win32.x86.

我有一个名为foo的插件,名为foo的插件和一个片段foo.win32.x86。

I should be able to execute a call to eclipse.buildscript within an ant file on a feature and have it create a build.xml for the feature, plugin, and fragment; however, all I get is the build.xml for the feature and plugin.

我应该能够在一个特性的ant文件中执行对eclipse.buildscript的调用,并让它为该特性,插件和片段创建一个build.xml;但是,我得到的只是功能和插件的build.xml。

The foo feature.xml:

foo feature.xml:

<?xml version="1.0" encoding="UTF-8"?>
<feature
  id="foo"
  label="%featureName"
  version="0.0.0.200906251500"
  provider-name="%providerName"
  plugin="foo">
<install-handler/>

<description>
  %description
</description>

<copyright>
  %copyRight
</copyright>

<license url="license.html">
  %license
</license>

<plugin
     id="foo"
     download-size="0"
     install-size="0"
     version="0.0.0"/>

<plugin
     id="foo.win32.x86"
     os="win32"
     arch="x86"
     download-size="0"
     install-size="0"
     version="0.0.0"
     fragment="true"/>

</feature>

The foo plugin MANIFEST.MF file:

foo插件MANIFEST.MF文件:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: foo; singleton:=true
Bundle-Version: 0.0.0.200906251500
Bundle-Vendor: %Plugin.providername
Bundle-Localization: plugin
Eclipse-LazyStart: true

The foo plugin.xml file:

foo plugin.xml文件:

<?xml version="1.0"?>
<?eclipse version="3.0"?>
<plugin>
   <!-- extension point stuff, blah -->
</plugin>

The foo.win32.x86 MANIFEST.MF file:

foo.win32.x86 MANIFEST.MF文件:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: foo.win32.x86
Bundle-Version: 0.0.0.200906251500
Bundle-Vendor: %Plugin.providername
Fragment-Host: foo;bundle-version="0.0.0.200906251500"
Bundle-Localization: plugin

Can anyone explain why I'm not getting the build.xml for the fragment?

谁能解释为什么我没有得到片段的build.xml?

If I force a call to eclipse.buildscript for the fragment it works fine, but doesn't this defeat the purpose?

如果我强制调用eclipse.buildscript获取该片段,它可以正常工作,但是这不会失败吗?

Thanks

1 个解决方案

#1


You will need to specify the configInfo attribute. The value is an '&' separated list of "os,ws,arch" triplets. Scripts are only generated for platform specific fragments if they resolve for one of the configurations being built. If configInfo is not specified, the default will be "*,*,*" which means "platform independent" (which your foo.win32.x86 doesn't match).

您需要指定configInfo属性。该值是“&os”,“os,ws,arch”三元组的“&”分隔列表。如果脚本解析了正在构建的配置之一,则仅为特定于平台的片段生成脚本。如果未指定configInfo,则默认为“*,*,*”,表示“平台无关”(foo.win32.x86与之不匹配)。

eg:

 <eclipse.buildscript 
        elements="feature@foo"
        buildDirectory="${buildDirectory}"
        baseLocation="${baseLocation}"
        configInfo="win32,win32,x86" />

The help page is here, which may be helpful.

帮助页面在这里,这可能会有所帮助。

#1


You will need to specify the configInfo attribute. The value is an '&' separated list of "os,ws,arch" triplets. Scripts are only generated for platform specific fragments if they resolve for one of the configurations being built. If configInfo is not specified, the default will be "*,*,*" which means "platform independent" (which your foo.win32.x86 doesn't match).

您需要指定configInfo属性。该值是“&os”,“os,ws,arch”三元组的“&”分隔列表。如果脚本解析了正在构建的配置之一,则仅为特定于平台的片段生成脚本。如果未指定configInfo,则默认为“*,*,*”,表示“平台无关”(foo.win32.x86与之不匹配)。

eg:

 <eclipse.buildscript 
        elements="feature@foo"
        buildDirectory="${buildDirectory}"
        baseLocation="${baseLocation}"
        configInfo="win32,win32,x86" />

The help page is here, which may be helpful.

帮助页面在这里,这可能会有所帮助。