1

我正在使用 Maven Tycho 构建一个 Eclipse 应用程序。我设法创建了用于构建插件和功能的 pom 文件。我在它们上运行安装并成功构建。我还为应用程序(产品)创建了 pom,并将 Packaging 设置为“eclipse-application”。该应用程序是基于功能的。我运行安装并成功构建。我得到了应用程序的生成文件夹,其中包含文件夹“插件”和“功能”。

问题是并非所有插件的所有 jar 文件都可以在 plugins 文件夹中找到。我可以找到功能中列出的插件的 jar 文件。但不会生成其他插件的依赖项选项卡中列出的插件的 jar 文件。换句话说,只有特性中引用的插件才会生成为jar文件,而插件中引用的插件的jar文件不会生成。

显然,没有它们我无法运行应用程序。我究竟做错了什么?如何获取生成的所有必需的 jar 文件?

谢谢!

4

2 回答 2

1

首先,不要使用eclipse-application. 它已被弃用,而且,作为一个试图让它与他自己的项目一起工作的人,我可以告诉你这是一个主意,因为它有很多问题。相反,使用eclipse-repository.

其次,将显示在您的产品plugins目录中的唯一 .jar 文件将是那些已成功编译的文件,并且也在您的 .product 文件的依赖项部分中,而不是您的 manifest.mf。

我怀疑您的问题与第二点有关,但我已经看到eclipse-application做了很多奇怪的事情,仅凭它就可以解决您的问题。

于 2012-04-11T15:04:32.143 回答
0

第一个答案是在正确的轨道上......使用eclipse-repository

要让 Tycho 生成存储库,您可能正在使用tycho-p2-repository-plugin ... 如果您正在使用该插件,那么您可能希望将这个小元素添加到配置部分。

<includeAllDependencies>true</includeAllDependencies>

这是我的 p2repository 插件中的 pom.xml 的更大示例。

<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>my.domain.product</groupId>
    <artifactId>parent</artifactId>
    <version>1.1.8-SNAPSHOT</version>
    <relativePath>../my.domain.product.parent</relativePath>
</parent>
<artifactId>my.domain.product.p2repository</artifactId>
<packaging>eclipse-repository</packaging>
<name>My Product - P2 Repository</name>

<build>
  <plugins>
    <plugin>
      <groupId>${tycho-groupid}</groupId>
      <artifactId>tycho-p2-repository-plugin</artifactId>
      <version>${tycho-version}</version>
      <configuration>
        <includeAllDependencies>true</includeAllDependencies>
        <createArtifactRepository>true</createArtifactRepository>
        <compress>true</compress>
      </configuration>
    </plugin>
 </plugins>

希望这可以帮助。

于 2012-05-01T15:02:13.230 回答