2017-02-03 15 views
0

У меня есть очень простой реактор Tycho с двумя модулями: один стандартный проект Maven с этим дополнением, чтобы сделать его сверток:зависимости В том же реакторе

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <extensions>true</extensions> 
    <executions> 
     <execution> 
      <id>default-bundle</id> 
      <phase>package</phase> 
      <goals> 
       <goal>bundle</goal> 
      </goals> 
      <configuration> 
       <instructions> 
        <Export-Package>org.acme.jar</Export-Package> 
       </instructions> 
       <manifestLocation>META-INF</manifestLocation> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Второй является проектом Тайхо, который имеет зависимость к вышеуказанному JAR в MANIFEST.MF.

Если я начну строить, я получаю следующее исключение:

[ERROR] Cannot resolve project dependencies: 
[ERROR] Software being installed: plugin 0.0.1.qualifier 
[ERROR] Missing requirement: plugin 0.0.1.qualifier requires 'bundle org.acme.jar 0.0.1' but it could not be found 

Что действительно странно, потому что расслоение находится в том же реакторе.

Но не беспокойтесь, я могу просто добавить зависимость Maven, тоже:

<!-- parent pom.xml --> 
<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>0.26.0</version> 
    <configuration> 
     <pomDependencies>consider</pomDependencies> 
    </configuration> 
</plugin> 

<!-- plug-in pom.xml --> 
<dependencies> 
    <dependency> 
     <groupId>org.acme</groupId> 
     <artifactId>jar</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
</dependencies> 

Тем не менее я получаю такое же исключение, которое странно, потому что documentation претензии: Maven решает GAV зависимостей по нормали Правила Мейвена.

Это просто неправда. Очевидно, org.acme.jar не разрешается. Или, может быть, Тихо не видит, что это пучок.

Модуль JAR - это проект API, используемый для компонентов на стороне сервера, и мы хотим отбросить SWT/Tycho в долгосрочной перспективе, поэтому не нужно делать org.acme.jar плагин Eclipse.

Как определить зависимости в одном реакторе для Tycho?

ответ

1

Боюсь, что то, о чем вы просите, в настоящее время невозможно. Документы Tycho Wiki this limitation в dependency on pom-first artifacts HOW-TO.

Это, как говорится, если вы действительно хотите всю сборку (maven-bundle-plugin и Tycho части), чтобы работать с одним mvn clean install, а затем с помощью maven-invoker-plugin в конце «простой Maven» построить на вилке «Тайхо строить» должны Работа. Это довольно громоздкое обходное решение, однако (example on Github).