Я хочу создать плагин 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.
Возможно ли это создать? Или есть другие подходы к их достижению?
заранее спасибо
Спасибо за ответ, но я хочу спросить больше. Как вы предложили, если бы я создал два файла Pom в одном проекте. Один предназначен для основного плагина Eclipse, использующего сборку Tycho, а другой - для загрузки сторонних зависимостей, скажем, в папку Lib. Эта папка Lib затем будет загружена Pom из основного плагина Eclipse. Может ли эта структура сделать то, что вы предложили?
Да, наверное (сам не пробовал). Если возможно, следует отдавать предпочтение отдельным плагинам / пакетам, а не встроенным JAR плагинам.




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