我正在使用Maven Tycho构建Eclipse应用程序。我设法创建用于构建插件和功能的pom文件。我在他们上运行安装并使Build成功。我还为应用程序(产品)创建了pom,并将Packaging设置为“eclipse-application”。该应用程序是基于功能的。我运行安装并获得Build成功。我获得了应用程序的生成文件夹,其中包含文件夹“plugins”和“features”。
问题是并非所有插件的jar文件都可以在plugins文件夹中找到。我可以找到功能中列出的插件的jar文件。但是不会生成其他插件的Dependencies选项卡中列出的插件的jar文件。换句话说,只有功能中引用的插件才会生成为jar文件,而插件中引用的插件的jar文件不会生成。
显然,没有它们我就无法运行应用程序。我究竟做错了什么?如何生成所有必需的jar文件?
谢谢!
答案 0 :(得分:1)
首先,请勿使用eclipse-application
。它已经被弃用了,而且,作为一个试图让它与自己的项目一起工作的人,我可以告诉你,这是一个糟糕的想法,因为它有很多问题。相反,请使用eclipse-repository
。
其次,将在您的产品plugins
目录中显示的唯一.jar文件将是已成功编译的文件,并且也位于.product文件的依赖项部分中,并且不< / strong>你的manifest.mf。
我怀疑你的问题与第二点有关,但我看到eclipse-application
做了很多奇怪的事情,单凭它可以解决你的问题。
答案 1 :(得分: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>
希望这有帮助。