JAR плагинов отсутствуют в приложении, построенном с Tycho - PullRequest
1 голос
/ 03 апреля 2012

Я создаю приложение Eclipse с Maven Tycho.Мне удалось создать файлы POM для создания плагинов и функций.Я запустил установку на них и получил успешную сборку.Я также создал pom для приложения (продукта) и установил для Packaging значение «eclipse-application».Приложение основано на функциях.Я запустил установку и получил успешную сборку.Я получил сгенерированную папку для приложения, содержащую папки «плагины» и «функции».

Проблема в том, что не все файлы jar для всех плагинов можно найти в папке плагинов.Я могу найти файлы JAR для плагинов, которые перечислены в функциях.Но файлы jar для плагинов, перечисленных на вкладке Зависимости других плагинов, не создаются.Другими словами, только плагины, на которые есть ссылки в функциях, генерируются как файлы JAR, в то время как файлы JAR для тех, на которые есть ссылки в плагинах, не генерируются.

Очевидно, что я не могу запустить приложение без них.Что я делаю неправильно?Как я могу получить все необходимые файлы JAR?

Спасибо!

Ответы [ 2 ]

1 голос
/ 11 апреля 2012

Во-первых, не используйте eclipse-application.Это устарело, и, будучи кем-то, кто пытался заставить его работать со своими собственными проектами, я могу сказать вам, что это плохая идея, поскольку у нее много проблем.Вместо этого используйте eclipse-repository.

Во-вторых, единственные файлы .jar, которые будут отображаться в вашем каталоге plugins, будут успешно скомпилированы, а также находятся в разделе зависимостей вашего .product.файл, а не ваш манифест.mf.

Я подозреваю, что ваша проблема связана со вторым пунктом, но я видел, что eclipse-application делает так много странных вещей, что он сам можетрешить вашу проблему.

0 голосов
/ 01 мая 2012

Первый ответ на правильном пути ... Используйте eclipse-repository .

Чтобы Tycho сгенерировал репозиторий, вы, вероятно, используете tycho-p2-repository-plugin ... И если вы используете этот плагин, то вы можете добавить этот маленький элемент в раздел конфигурации.

<includeAllDependencies>true</includeAllDependencies>

Вот увеличенный пример моего pom.xml, который находится в моем плагине p2repository.

<?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>

Надеюсь, это поможет.

...