Как создать репозиторий p2 с помощью плагина p2-maven и использовать локальный каталог в качестве источника JAR?

#maven #eclipse-plugin #eclipse-rcp #dependency-management #tycho

Вопрос:

Ситуация: Приложение Eclipse RCP использует Maven Tycho plugin , теперь я хочу правильно интегрировать p2-maven-плагин». У меня есть каталог, содержащий все сторонние банки и плагины Eclipse в виде банок.

Как использовать p2-maven-plugin для создания репозитория p2, который включает в себя все файлы из этого каталога?

 <?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>my.company</groupId>
    <artifactId>p2-site</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>


    <build>
        <plugins>
            <plugin>
                <groupId>org.reficio</groupId>
                <artifactId>p2-maven-plugin</artifactId>
                <version>1.3.0</version>
                <executions>
                    <execution>
                        <id>default-cli</id>
<!--   How can I get there artifacts located in directory on my local machine??? These libs (in example below) are taken from .m2 maven repo  -->
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <id>commons-lang:commons-lang:2.4</id>
                                </artifact>
                                <artifact>
                                    <id>commons-lang:commons-lang:2.5</id>
                                </artifact>
                                <artifact>
                                    <id>commons-lang:commons-lang:2.6</id>
                                </artifact>
                                <artifact>
                                    <id>junit:junit:3.8.2</id>
                                </artifact>
                            </artifacts>

                        </configuration>

                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.5.v20120716</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                    <webAppSourceDirectory>${project.basedir}/target/repository/</webAppSourceDirectory>
                    <webApp>
                        <contextPath>/site</contextPath>
                    </webApp>
                    <stopKey/>
                    <stopPort/>
                </configuration>
            </plugin>

        </plugins>
    </build>
...
 

Спасибо!

Редактировать:

Папка с плагинами (JAR), из которой я хочу создать репозиторий p2. введите описание изображения здесь

использование плагина tycho extras p2 в моем главном pom — не работает, я думаю, что, возможно, этот фрагмент кода вообще не вызывается… Как я могу это назвать? введите описание изображения здесь

Комментарии:

1. Это можно сделать с помощью цели плагина Tycho p2 Extras publish-features-and-bundles . Смотрите, например, здесь .

2. @howlger извините, но это не работает, см. ПРАВКУ выше

3. <sourceLocation> это каталог, содержащий папки plugins и features , а не его родительский. На скриншоте показано, что вы все еще ограничиваетесь IDE без поддержки Eclipse и используете Eclipse 3.7.2, который отстает почти на десять лет. Больно просто смотреть.