Maven Внутренняя ошибка: org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Исключение при разборе OSGi MANIFEST - PullRequest
0 голосов
/ 08 ноября 2018

Я настраиваю maven для нескольких типов проектов dsl (xtext). Я настроил все, что мне нужно для плагинов dsl1 (xtext), он работал успешно (генерировать исходные коды Java, создавать, запускать тесты, экспортировать, генерировать P2).

Затем я переместил те же конфигурации pom.xml для моих следующих плагинов dsl2, которые были примерно такими же, и у меня возникла проблема:

[ERROR] Failed to execute goal org.eclipse.xtext:xtext-maven-plugin:2.16.0.M1:generate (default) on project com.dsl.dsl2: Execution default of goal org.eclipse.xtext:xtext-maven-plugin:2.16.0.M1:generate failed: Plugin org.eclipse.xtext:xtext-maven-plugin:2.16.0.M1 or one of its dependencies could not be resolved: Could not find artifact com.dsl.dsl2:com.dsl.dsl2:jar:0.1.0-SNAPSHOT 

Плагин, который работает com.dsl.dsl2, и он говорит, что не может найти себя. Действительно, по какой-то причине maven не может скопировать его в соответствующее местоположение .m2/repository. Я пробовал разные решения, чтобы решить эту проблему, и одно из них состояло в том, чтобы удалить все ~/.m2/repository и восстановить его. Но теперь вместо решения моей проблемы я сталкиваюсь с другими проблемами.

Для всех моих репозиториев, которые работали до запуска mvn clean verify, теперь все жалуются с одинаковой ошибкой:

[INFO] Resolving class path of MavenProject: com.dsl.dsl2:com.dsl.dsl2:1.1.1-SNAPSHOT @ /<my_path>/<my_repo>/com.dsl.dsl2/pom.xml
[ERROR] Internal error: org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Exception parsing OSGi MANIFEST ~/.m2/repository/p2/osgi/bundle/org.eclipse.xtext.xtext.generator/2.15.0.v20180916-0722/org.eclipse.xtext.xtext.generator-2.15.0.v20180916-0722.jar: zip file is empty -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Exception parsing OSGi MANIFEST ~/.m2/repository/p2/osgi/bundle/org.eclipse.xtext.xtext.generator/2.15.0.v20180916-0722/org.eclipse.xtext.xtext.generator-2.15.0.v20180916-0722.jar: zip file is empty
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
    ...
Caused by: org.eclipse.tycho.core.osgitools.OsgiManifestParserException: Exception parsing OSGi MANIFEST ~/.m2/repository/p2/osgi/bundle/org.eclipse.xtext.xtext.generator/2.15.0.v20180916-0722/org.eclipse.xtext.xtext.generator-2.15.0.v20180916-0722.jar: zip file is empty
    at org.eclipse.tycho.core.osgitools.DefaultBundleReader.doLoadManifest (DefaultBundleReader.java:68)
    ...
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.util.zip.ZipException: zip file is empty
    at java.util.zip.ZipFile.open (Native Method)
    ...

Меня больше всего интересует решение этого последнего вопроса первым. Файл JAR, кажется, правильный:

% ls -lsa ~/.m2/repository/p2/osgi/bundle/org.eclipse.swt.gtk.linux.x86/3.105.3.v20170228-0512/
2568 <user> 2616403  org.eclipse.swt.gtk.linux.x86-3.105.3.v20170228-0512.jar
   4 <user> 219      org.eclipse.swt.gtk.linux.x86-3.105.3.v20170228-0512-p2artifacts.xml

И я не знаю, почему он использует xtext 2.15.0 в качестве Я указал в свойствах pom.xml

<xtend.version>2.16.0.M1</xtend.version>
<xtext.version>2.16.0.M1</xtext.version>

Мой Maven:

% mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T21:33:14+03:00)
Maven home: ~/maven/apache-maven-3.5.4
Java version: 1.8.0_45, vendor: Oracle Corporation, runtime: 
Default locale: en_US, platform encoding: ISO-8859-1
OS name: "linux", version: "2.6.32-642.11.1.el6.x86_64", arch: "amd64", family: "unix"

И я использую прокси.

Обновление

Это содержимое разархивированной банки, на которое он жалуется.

% ls  /org.eclipse.swt.gtk.linux.x86-3.105.3.v20170228-0512
about_files  fragment.properties     libswt-cairo-gtk-4629.so  libswt-gtk-4629.so          libswt-pi-gtk-4629.so         libswt-xulrunner-fix10.so     META-INF  swt.xpt
about.html   libswt-atk-gtk-4629.so  libswt-glx-gtk-4629.so    libswt-mozilla-gtk-4629.so  libswt-webkit-gtk-4629.so     libswt-xulrunner-fix31.so     org       version.txt
chrome.manifest  libswt-awt-gtk-4629.so  libswt-gnome-gtk-4629.so  libswt-pi3-gtk-4629.so      libswt-xpcominit-gtk-4629.so  libswt-xulrunner-gtk-4629.so  swt.js

Я использую простую конфигурацию целевой платформы:

    <repository>
        <id>xtext</id>
        <url>http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/</url>
        <layout>p2</layout>
    </repository>
    <repository>
        <id>eclipse</id>
        <url>http://download.eclipse.org/releases/neon/201705151400/</url>
        <layout>p2</layout>
    </repository>

Обновление

Я решил свою проблему, но не могу сказать, что это решение тех проблем, которые у меня были.

  • Последняя ошибка, связанная с тайм-аутом из-за ограничений прокси, верить. Это было решено на следующий день само собой.
  • Первая описанная ошибка, которую я решил, воссоздав свои конфигурации pom на основе https://www.eclipse.org/Xtext/documentation/350_continuous_integration.html

По сути, я больше не использую <artifactId>xtext-maven-plugin</artifactId>, который не удался, и рекомендуется использовать его в плагине, отличном от Eclipse, в случае необходимости. Мне это не нужно.

...