В настоящее время у меня есть проект RCP, и я хочу экспортировать продукт с помощью Tycho-packaging, но у меня есть сторонние плагины и функции, любая идея, как я могу управлять им?Tycho Maven: экспорт продукта с сторонними пакетами и функциями
ответ
Но в чем проблема? Если вы добавили сторонние плагины на целевую платформу - они будут экспортироваться Tycho. Если у вас есть такие проекты в вашей рабочей области, добавьте pom.xml в каждый из таких проектов с соответствующим типом упаковки: "eclipse-plugin"
, "eclipse-feature"
и т. Д. Если эти проекты распределяются между сервером и клиентом и требуют разных типов упаковки, настройте родительский pom. XML вашего клиента проектов с чем-то, как этот
<module>../commons/pom.osgi.xml</module>
где pom.osgi.xml содержит тип упаковки для Tycho и проект «Обще» содержит стандартный pom.xml с типом упаковки сервера (например, «баночки»).
UPD: Пример содержания pom.osgi.xml:
<?xml version="1.0" encoding="UTF-8"?><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>
<version>5.4.0.v20140625-0169</version>
<packaging>eclipse-plugin</packaging>
<parent>
<groupId>com.company</groupId>
<artifactId>app.client</artifactId>
<version>5.4.0-SNAPSHOT</version>
<relativePath>../parent.project.path</relativePath>
</parent>
<artifactId>com.company.activity</artifactId>
</project>
Содержание MANIFEST.MF
Bundle-SymbolicName: com.company.activity
Кроме того, в обоих версиях pom.osgi.xml и MANIFEST.MF должны соответствовать - поэтому наша система сборки настроена на обновление обоих этих файлов.
UPD 2: Целевая платформа pom.xml:
<properties>
<product.dir>${project.basedir}/eclipse</product.dir>
<p2.dir>${project.basedir}/../repository/base</p2.dir>
</properties>
<dependencies>
<!-- Eclipse Helios -->
<!-- Includes JUnit -->
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>rcp-helios</artifactId>
<version>${eclipse.rcp.version}</version>
<type>zip</type>
<optional>true</optional>
</dependency>
<!-- Delta Pack for MultiPlatform Build -->
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>delta-pack</artifactId>
<version>${eclipse.rcp.version}</version>
<classifier>pack</classifier>
<type>zip</type>
<optional>true</optional>
</dependency>
<!-- babel.de Language Pack -->
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>BabelLanguagePack-de</artifactId>
<version>${eclipse.babel.version}</version>
<type>zip</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${product.dir}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/../ajdt/eclipse</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>unpack-eclipseRcp</id>
<phase>validate</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeGroupIds>org.eclipse</includeGroupIds>
<includeArtifactIds>rcp-helios,delta-pack,BabelLanguagePack-de</includeArtifactIds>
<outputDirectory>${product.dir}/../</outputDirectory>
</configuration>
</execution>
<execution>
<id>copy-dependencies</id>
<phase>validate</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeArtifactIds>rcp-helios,delta-pack,BabelLanguagePack-de</excludeArtifactIds>
<outputDirectory>${product.dir}/plugins</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>runtime</includeScope>
<artifactItems>
</artifactItems>
</configuration>
</execution>
<execution>
<id>copy</id>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${product.dir}/plugins</outputDirectory>
<artifactItems>
....
<!-- Jersey -->
<artifactItem>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${org.glassfish.jersey.core.version}</version>
<destFileName>org.glassfish.jersey.core.jersey-client_${org.glassfish.jersey.core.version}.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${org.glassfish.jersey.core.version}</version>
<destFileName>org.glassfish.jersey.core.jersey-client-source_${org.glassfish.jersey.core.version}.jar</destFileName>
</artifactItem>
<!-- SLF4j -->
<artifactItem>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<destFileName>slf4j.api_${slf4j.version}.jar</destFileName>
</artifactItem>
<artifactItem>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${ch.qos.logback.version}</version>
<destFileName>ch.qos.logback.core_${ch.qos.logback.version}.jar</destFileName>
</artifactItem>
....
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<destFileName>jackson-mapper-asl_${jackson-mapper-asl.version}.jar</destFileName>
<version>${jackson-mapper-asl.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>${hamcrest.version}</version>
<destFileName>org.hamcrest.all_${hamcrest.version}.jar</destFileName>
</dependency>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>0.13.0</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>publish-features-and-bundles</goal>
</goals>
</execution>
</executions>
<configuration>
<compress>false</compress>
<metadataRepositoryLocation>${p2.dir}</metadataRepositoryLocation>
<artifactRepositoryLocation>${p2.dir}</artifactRepositoryLocation>
<sourceLocation>${product.dir}</sourceLocation>
<publishArtifacts>true</publishArtifacts>
<append>true</append>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>eclipse</directory>
<followSymlinks>false</followSymlinks>
</fileset>
<fileset>
<directory>${p2.dir}</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
- 1. Проблемы с пакетами, модулями и функциями
- 2. Maven + Tycho, добавляя зависимости Maven
- 3. Ошибка конфигурации с Tycho/Maven: «Tycho build extension не настроен»
- 4. Maven + Tycho: нерешенные зависимости
- 5. Maven Tycho: Недействительная версия OSGi
- 6. Перейти к проекту с сторонними пакетами на Heroku
- 7. как отлаживать плагин maven tycho?
- 8. Использование Maven tycho-p2-plugin с SWT
- 9. Установка Tycho через Maven с флагом офлайн
- 10. Building RAP с Tycho/Maven дает DuplicateReactorIUsException
- 11. Выполнение заметок в файле конфигурации продукта Eclipse с tycho
- 12. Динамическое добавление файла в архив продукта, построенного Tycho
- 13. Как создать плагин Eclipse с использованием Maven и Tycho?
- 14. Ошибка в Tycho при замене продукта ico-файлы
- 15. Сборка продукта Eclipse с Maven/Tycho от функций в удаленных хранилищах
- 16. Экспорт .jar для использования в Unity с сторонними библиотеками: NoClassDefFoundError
- 17. Обновление tycho pom & manifest через Maven
- 18. Как запустить приложение RCP Maven/Tycho
- 19. Ошибка Maven из-за отсутствия зависимости tycho?
- 20. Maven-Tycho Eclipse: Ошибка при установке плагина, созданного Maven
- 21. Начиная с Eclipse Tycho
- 22. Использование OCL в Maven/Tycho-безошибочный
- 23. Ошибка компиляции в maven tycho plugin
- 24. Как я могу сделать свой плагин автоматически установленными сторонними функциями?
- 25. Unresolveable build extension: Plugin org.eclipse.tycho: tycho-maven
- 26. Код здания - добавление Maven зависимостей в EclipseLink (ANT + Maven + Tycho)
- 27. «ошибка ограничения API» при экспорте плагин Eclipse, с Maven-Tycho:
- 28. Проект Debug Maven в Eclipse с сторонними источниками
- 29. При автоматизации Eclipse «Экспорт как функция» Maven/Tycho не видит мой плагин
- 30. Компиляция Maven с несколькими сторонними библиотеками для развертывания OSGi
Здравствуйте Александр! Большое спасибо за ваш ответ. Я подумал о возможности изменения типа упаковки и конфигурации в качестве профиля на родительском pom, и я мог бы использовать до этого прежде, чем использовать экспортный продукт. Проблема в том, что одно из требований tycho заключается в том, что artifactId он должен быть таким же, как Bundle-SymbolicName, который включен в MANIFEST.MF. И у меня есть настройка с другим именем, поэтому я ищу другие варианты. Я попытаюсь определить на моей целевой платформе. Спасибо! –
@ CristinaGalán, см. Обновленный ответ. –
Привет, Александр! Я попытался создать каталог с необходимыми плагинами, но проблема в том, что платформа Tycho-Target не поддерживает тип каталога. Я попытался включить в качестве зависимости и настроить tycho-платформу с учетом pomDependencies, но все равно не работает. Любая идея, как я могу это сделать? –