使用eclipse-plugin打包将java插件转换成maven项目

Convert java plugin into maven project with eclipse-plugin packaging

我对 java 很有经验,但我是第一次使用 maven。 我已经安装了 Eclipse Kepler(适用于 RCP 和 RAP 开发人员的 Eclipse),我还通过 "add new software" 按钮安装了 Tychus。

我克隆并构建了一个名为 OM2M 的 Internet of things project。 我一步一步地按照安装 wiki 进行操作,直到那时一切正常。 cloning wiki here

我想开发自己的 OSGI 模块,所以我去了维基的 'developer' 部分并再次创建了一个新的插件项目。 当我尝试将此插件项目转换为 Maven 项目时(link to the step i'm talking about ) I don't have to "eclipse-plugin" packaging type for my pom wiki screenshot here.

我在网上查了一下,显然它与需要配置的 Tychus 有关,我尝试在框中输入它,但显然我在尝试构建时遇到了问题,我尝试编辑主要 pom.xml 用我发现的东西,但 none 有用,我真的不知道该怎么做才能让它有用。

你们有什么想法吗? 谢谢

编辑:我忘了说我读过 this thread 但我不明白答案,我不知道把代码放在哪里是最佳答案,我也不知道在哪里到 OSGI 清单。

编辑 2:pom.xml 当我手动输入 eclipse-plugin 时得到: 如果我手写 eclipse-plugin 这是我的 pom.xml :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.om2m</groupId>
  <artifactId>org.eclipse.om2m.sample.ipu</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>
</project>

编辑 3:我设法通过将主要 pom.xml 设置为父级来消除错误,但现在当我尝试构建时出现以下错误:

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:0.20.0:validate-version (default-validate-version) on project org.eclipse.om2m.sample.ipu: Unqualified OSGi version 1.0.0.qualifier must match unqualified Maven version 0.0.1-SNAPSHOT for SNAPSHOT builds -> 

我已经搜索了目标,但我不知道在哪里设置或编辑它们。

编辑 4:感谢@Wim Anckaert,我已经从 pom.xml 和清单中删除了 .qualifier 和 .snapshot,现在它似乎可以正常工作了! 非常感谢大家。

值"eclipse-plugin"不包含在组合中(即drop-down列表框here),您应该手写。

更新: 首先你必须启用tycho。为此,添加

<build>
  <plugins>
    <plugin>
      <groupId>org.eclipse.tycho</groupId>
      <artifactId>tycho-maven-plugin</artifactId>
      <version>0.24.0</version>
      <extensions>true</extensions>
    </plugin>
  </plugins>
</build>

到您的 pox.xml(或者,最好是它的 parent)。

然后,您需要知道屏幕截图 上显示的向导不会 搜索 [=24= 的所有可能值] 标签,而是将最可用的值添加到 "Packaging" drop-down 列表框,并允许您输入所需的任何值。

有关详细信息,请查看 here

最后一个错误似乎是您的 ./pom.xml 和 Bundle-Version[=22= 的 <version> 有问题] 的 ./META-INF/MANIFEST.MF 文件。这些应该彼此相等。

我们的一部分pom.xml:

<artifactId>be.cs.fashion.awg.core</artifactId>
<name>CERPS</name>
<version>2.1.0</version>
<packaging>eclipse-plugin</packaging>

我们的一部分MANIFEST.MF

Bundle-Name: CERPS
Bundle-SymbolicName: be.cs.fashion.awg.core;singleton:=true
Bundle-Version: 2.1.0
Bundle-Localization: plugin

所以在你的情况下 pom.xml 版本应该是“1.0.0-SNAPSHOT”或者你应该使用 Bundle-Version “0.0.1.qualifier” 我们在我们的版本中删除了“-SNAPSHOT”和“.qualifier”。