Iam пытается сгенерировать категоризированный репозиторий p2 с помощью Tycho. Есть в основном три шага, чтобы сделать (сравните Eclipse documentation):Tycho: классифицировать метаданные p2
- Скачать Связки
- Trigger org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
- Trigger org.eclipse.equinox.p2.publisher.CategoryPublisher
, который я сконфигурировал в maven pom-файле. Шаги 1 и 2 делают хорошо, тогда шаг 3 завершается с:
Status ERROR: this code=0 publishing result null children=[Status ERROR: org.eclipse.equinox.p2.updatesite code=0 Error
generating category xml action. org.eclipse.equinox.p2.core.ProvisionException: Error reading update site file:/<path>/category.xml.]
Вот мой pom.file
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demo</groupId>
<artifactId>simple-p2-repository</artifactId>
<version>0.1.0-SNAPSHOT</version>
<name>Simple p2 repository build</name>
<packaging>pom</packaging>
<properties>
<tycho-version>0.18.0</tycho-version>
</properties>
<build>
<plugins>
<!-- Step 1 -->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-bundles-for-publishing</id>
<phase>process-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle</artifactId>
<version>2.7.5</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.basedir}/target/source/plugins</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- Step 2 -->
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-p2-extras-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>publish-features-and-bundles</goal>
</goals>
</execution>
</executions>
<configuration>
<compress>true</compress>
<append>true</append>
<publishArtifacts>true</publishArtifacts>
</configuration>
</plugin>
<!-- Step3 -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>category-p2-metadata</goal>
</goals>
</execution>
</executions>
<configuration>
<target>${basedir}/target/repository</target>
<categoryDefinition>${basedir}/category.xml</categoryDefinition>
</configuration>
</plugin>
</plugins>
</build>
</project>
И мой category.xml
<?xml version="1.0" encoding="UTF-8"?>
<site>
<category-def name="all" label="Maven osgi-bundles"/>
<iu>
<category name="all"/>
<query>
<expression type="match">providedCapabilities.exists(p | p.namespace == 'osgi.bundle')</expression>
</query>
</iu>
</site>
Если я вручную выполнить команду эта же ошибка возникает. Что мне не хватает?
Параметр '' синтаксис в настоящее время не поддерживается в Tycho, и никто еще не запросил (https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Tycho). Может быть, вы хотите предложить это усовершенствование? –
oberlies
Хмм, это не сработает с «Недостающее требование: org.apache.cxf.bundle 2.7.5 требует« package com.ibm.wsdl.util.xml 0.0.0 », но он не может быть найден». @Achim: У вас есть какая-то подсказка, откуда этот пакет должен появиться во время выполнения? – oberlies
Пакет исходит из [org.apache.servicemix.bundles.wsdl4j] (http://search.maven.org/#artifactdetails%7Corg.apache.servicemix.bundles%7Corg.apache.servicemix.bundles.wsdl4j%7C1. 6.3_1% 7Cbundle). Спасибо за подсказку, я дам ей попытку и сообщите, работает ли она для меня. – Achim