Можно ли создать проект плагина Eclipse с использованием Maven Tycho со сторонними зависимостями?

Я хочу создать плагин Eclipse, который содержит встроенную базу данных (например, Derby), и он также имеет JPA, как EclipseLink. Что, возможно, содержит много сторонних зависимостей в одном плагине.

Кроме того, мне интересно, можно ли создать проект плагина с использованием Tycho, который имеет только один файл Pom, без отдельных родительских и дочерних Poms?

Например, как показано ниже, 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>com.company</groupId>
  <artifactId>com.company.persistance</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>
    <properties>
        <tycho-version>1.0.0</tycho-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>commonj.sdo</artifactId>
            <version>2.1.1</version>
        </dependency>   
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.12.1.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbyclient</artifactId>
            <version>10.10.1.1</version>
            <type>jar</type> 
        </dependency>
    </dependencies>

  <repositories>
        <repository>
            <id>luna</id>
            <layout>p2</layout>
            <url>http://download.eclipse.org/releases/luna</url>
        </repository>
    </repositories>

  <build>
    <sourceDirectory>../src</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>${tycho-version}</version>
            <extensions>true</extensions>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
              <pomDependencies>consider</pomDependencies>    
            </configuration>
         </plugin>
    </plugins>
  </build>
</project>

Я новичок в Maven + Tycho, и приведенный выше сценарий не работал так, как я ожидал.

Я также стараюсь следовать этому руководству, но без пометки родитель-потомок https://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts

Потому что я также хочу, чтобы Maven загружал сторонние зависимости и позже помещал их в файл Manifest.mf.

Возможно ли это создать? Или есть другие подходы к их достижению?

заранее спасибо

В отличие от простого Maven, Tycho использует репозитории Eclipse p2 для разрешения и загрузки зависимостей. Если сторонние зависимости должны находиться внутри плагина, а не как отдельные плагины / пакеты из репозитория p2 (Плагины / пакеты Apache Derby доступны в Eclipse Orbit.), для загрузки сторонних зависимостей в папку плагина требуется отдельный pom.xml.

howlger 02.11.2018 08:49

Спасибо за ответ, но я хочу спросить больше. Как вы предложили, если бы я создал два файла Pom в одном проекте. Один предназначен для основного плагина Eclipse, использующего сборку Tycho, а другой - для загрузки сторонних зависимостей, скажем, в папку Lib. Эта папка Lib затем будет загружена Pom из основного плагина Eclipse. Может ли эта структура сделать то, что вы предложили?

honeynewtype 02.11.2018 10:19

Да, наверное (сам не пробовал). Если возможно, следует отдавать предпочтение отдельным плагинам / пакетам, а не встроенным JAR плагинам.

howlger 02.11.2018 11:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
439
0

Другие вопросы по теме