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