13

在eclipse源码库中编译。我有“尚未设置 API 基线...”错误。

在此处输入图像描述

我尝试添加 API Baseline,但我不知道如何制作或添加它。

API Baseline 的用途是什么,如何添加或制作?

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

8

我尝试回答问题的“API 基准是什么,......”部分。

API Baseline 是 PDE Tools / API Tools 的一个概念。它们旨在帮助您维护其他人可以使用的插件。它们帮助您创建兼容的 API 版本。

问题:

  1. 您创建插件并向公众发布版本 1。
  2. 数百万人将使用您的插件并根据您插件的 API 创建自己的代码。
  3. 您向公众发布第 2 版。错误地更改了插件的 API。
  4. 数百万人更新到新版本并不得不调整他们的代码。数以千计的程序失败。人们很伤心。

解决方案:

  1. 您创建插件,注释其 API并向公众发布版本 1。
  2. 数百万人将使用您的插件并根据您插件的 API 创建自己的代码。
  3. 您将插件的版本 1 声明为自动比较您的代码更改的API-Baseline 。在您发布插件或运行测试之前,API 中的任何中断都会呈现给您。您发布的版本 2 没有任何 API 更改。
  4. 数百万人可以在他们的应用程序中更新您的插件,因为新的插件版本与前一个版本是二进制兼容的。
  5. 您声明插件的第 2 版....

概括

如果您开发的插件仅供您个人使用,并且对维护兼容的 API 不感兴趣,您可以按照建议禁用警告。

当您为社区开发插件时,例如 eclipse 插件本身,您必须将 API 不兼容性保持在最低限度。然后你会按照建议,在为 4.3 开发时将基线设置为 4.2。API 工具将帮助您使 4.3 成为所有当前 4.2 用户的享受。

请注意,API 工具是供其他人使用的插件的开发人员使用的。这些插件的用户没有解决它们。

于 2016-11-09T16:10:06.390 回答
3

引用 Eclipse 站点,“API 基线定义了您想要比较开发工作区包的状态,以实现二进制兼容性、包版本号和@since 标记。例如,如果您正在为 Eclipse 3.4 开发包,您可以使用 Eclipse 3.3 作为您的基线。”

所以基本上这意味着你正在构建需要其他包(依赖包/插件+ OSGi框架(核心和纲要API/服务))的包(一个插件项目,它是一个OSGi包或一个Eclipse插件),你通过“API Baseline”指定它,该“API Baseline”保证它们的(依赖项)存在类似于“配置文件”(例如 IBM WAS 中的 Liberty 配置文件)。

作为一种解决方法,您可以避免通过“插件首选项”为您的工作区设置 API 基线,将其设置为“警告”或“忽略”。这允许您编译插件 (OSGi) 项目。

参考: http ://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Freference%2Fapi-tooling%2Fpreferences%2Fref-baselines.htm

于 2014-08-09T16:28:29.853 回答
1

你也可以“忽略”它:http ://exploreeclipse.blogspot.ch/2014/01/eclipse-error-api-baseline-has-not-been.html

“Windows > Preferences > Plug-in Development > API Baselines > Options > Missing API baseline 然后,在下拉列表中将“错误”更改为“忽略”。

请记住,忽略可能是错误的做法,具体取决于用例:

  • 如果您必须在源代码上工作,甚至要提交一个项目,那么忽略 API 基线可能不是一个好主意。
  • 如果您仅使用它们作为依赖项导入包,例如通过 Git(可能更容易拉新更改或切换到另一个分支),您可以忽略 API 基线
于 2015-03-11T16:26:42.533 回答