Eclipse 2018-12 имеет зависимость от Windows, Linux и MaxOS - PullRequest
0 голосов
/ 13 февраля 2019

Я только что обновил функцию org.eclipse.e4.rcp моего приложения из Eclipse 4.9.до 4,10 (или с 2012-09 по 2012-12).Теперь я получаю исключение:

[ERROR] Cannot resolve target definition:
[ERROR]   Problems resolving provisioning plan.:
[ERROR]      Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801].
[ERROR]      Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.cocoa.macosx.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801].
[ERROR]      Unable to satisfy dependency from org.eclipse.swt 3.109.0.v20181204-1801 to org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.ppc64le [3.109.0.v20181204-1801,3.109.0.v20181204-1801].

И файл .target , и файл pom.xml определили целевую платформу только для Windows:

<environment>
    <os>win32</os>
    <ws>win32</ws>
    <arch>x86_64</arch>
</environment>

И целевой файл имеет дополнительно includeAllPlatforms="false".Если установить значение true, я получу очень похожее исключение:

[ERROR]   Software being installed: org.acme.plugin 7.0.0.qualifier
[ERROR]   Missing requirement: org.eclipse.swt 3.109.0.v20181204-1801 requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.linux.x86_64 [3.109.0.v20181204-1801,3.109.0.v20181204-1801]' but it could not be found
[ERROR]   Cannot satisfy dependency: org.acme.plugin 7.0.0.qualifier depends on: java.package; org.eclipse.jface.preference 0.0.0
[ERROR]   Cannot satisfy dependency: org.eclipse.jface 3.15.0.v20181123-1505 depends on: osgi.bundle; org.eclipse.swt [3.104.0,4.0.0)

Если я добавлю фрагменты на целевую платформу, я получу следующее сообщение (что вполне понятно):

org.eclipse.swt.gtk.linux.x86_64 3.109.0.v20181204-1801 cannot be installed in this environment because its filter is not applicable. -> [Help 1]

Установка целевой платформы в режим planner не работает.Также не устанавливается <org.eclipse.swt.buildtime>true</org.eclipse.swt.buildtime> в pom.xml (false тоже не работает).

Глядя на XML-файл функции, я не вижу в этом ничего плохого (фрагменты определены только для их ОС), однако целевая платформа хочет иметь фрагменты для Linux и MacOS, хотяЯ на Windows.

Целевая платформа выглядит следующим образом (опять же, она работает, если я заменю 2018-12 на 2018-09):

<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
  <repository location="https://download.eclipse.org/releases/2018-12/"/>

    <unit id="org.eclipse.e4.rcp.feature.group"                     version="0.0.0" />
    <unit id="org.eclipse.emf.common.feature.group"                 version="0.0.0" />
    <unit id="org.eclipse.emf.ecore.feature.group"                  version="0.0.0" />
    <unit id="org.eclipse.equinox.executable.feature.group"         version="0.0.0" />
    <unit id="org.eclipse.rcp.feature.group"                        version="0.0.0" />
</location>

И она подключена в pom.xml вот так:

        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <configuration>
                <resolver>p2</resolver>
                <target>
                    <artifact>
                        <groupId>groupId</groupId>
                        <artifactId>org.acme.plugin.build</artifactId>
                        <version>7.0.0-SNAPSHOT</version>
                        <classifier>platform</classifier>
                    </artifact>
                </target>
                <ignoreTychoRepositories>true</ignoreTychoRepositories>
                <environments>
                    <environment>
                        <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86_64</arch>
                    </environment>
                </environments>
            </configuration>
        </plugin>

В чем проблема?Как я могу это исправить?

1 Ответ

0 голосов
/ 14 февраля 2019

Кто бы мог подумать?Это та же самая ошибка Eclipse, что и в этот вопрос снова .По какой-то причине наш процесс сборки отдает предпочтение плагинам в Maven Central по сравнению с плагинами в репозитории Eclipse.Так как они нарушили зависимости Maven, и поскольку Tycho (очевидно) все еще оценивает эти зависимости, это нарушает сборку.

В нашем случае исправить это было так же просто, как перенести Maven Central ниже репо Eclipse на нашей целевой платформе..

...