Я создаю проекты Xtext программно, используя Xtext версии 2.17.0 (Java 11). Весь процесс таков:
Bundle-ManifestVersion: 2
Bundle-Name: org.mealy.ui
Bundle-Vendor: My Company
Bundle-Version: 1.0.0.qualifier
Bundle-SymbolicName: org.mealy.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.mealy,org.mealy.ide,org.eclipse.xtext.ui,org.eclipse
.xtext.ui.shared,org.eclipse.xtext.ui.codetemplates.ui,org.eclipse.ui.e
ditors;bundle-version = "3.5.0",org.eclipse.ui.ide;bundle-version = "3.5.0"
,org.eclipse.ui,org.eclipse.compare,org.eclipse.xtext.builder,org.eclip
se.xtext.xbase.lib;bundle-version = "2.14.0",org.eclipse.xtend.lib;bundle
-version = "2.14.0";resolution:=optional,org.eclipse.ui.console;bundle-ve
rsion = "3.8.100"
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.mealy.ui
Export-Package: org.mealy.ui.internal,org.mealy.ui.quickfix,org.mealy.ui
.contentassist
Bundle-Activator: org.mealy.ui.internal.MealyActivator
Bundle-ClassPath: lib/mealyMachine-1.0-SNAPSHOT.jar,
.
Но при запуске последней точки в версии 2.17.0 Xtext (с Java 11) что-то добавляется в MANIFEST.MF проекта ui Xtext, и пакет mvn завершается со следующей ошибкой:
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-p2-plugin:1.3.0:p2-metadata-default (default-p2-metadata-default) on project org.mealy.ui: Execution default-p2-metadata-default of goal org.eclipse.tycho:tycho-p2-plugin:1.3.0:p2-metadata-default failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-p2-plugin:1.3.0:p2-metadata-default (default-p2-metadata-default) on project org.mealy.ui: Execution default-p2-metadata-default of goal org.eclipse.tycho:tycho-p2-plugin:1.3.0:p2-metadata-default failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-p2-metadata-default of goal org.eclipse.tycho:tycho-p2-plugin:1.3.0:p2-metadata-default failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: java.lang.IllegalArgumentException
at org.eclipse.tycho.p2.impl.publisher.P2GeneratorImpl.getCanonicalArtifact(P2GeneratorImpl.java:206)
at org.eclipse.tycho.p2.impl.publisher.P2GeneratorImpl.generateMetadata(P2GeneratorImpl.java:148)
at org.eclipse.tycho.plugins.p2.P2MetadataMojo.attachP2Metadata(P2MetadataMojo.java:157)
at org.eclipse.tycho.plugins.p2.P2MetadataMojo.execute(P2MetadataMojo.java:116)
at org.eclipse.tycho.plugins.p2.P2MetadataDefaultMojo.execute(P2MetadataDefaultMojo.java:33)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 22 more
Manifest.mf проекта UI Xtext в конце выглядит так:
Bundle-ManifestVersion: 2
Bundle-Name: org.mealy.ui
Bundle-Vendor: My Company
Bundle-Version: 1.0.0.qualifier
Bundle-SymbolicName: org.mealy.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.mealy,org.mealy.ide,org.eclipse.xtext.ui,org.eclipse
.xtext.ui.shared,org.eclipse.xtext.ui.codetemplates.ui,org.eclipse.ui.e
ditors;bundle-version = "3.5.0",org.eclipse.ui.ide;bundle-version = "3.5.0"
,org.eclipse.ui,org.eclipse.compare,org.eclipse.xtext.builder,org.eclip
se.xtext.xbase.lib;bundle-version = "2.14.0",org.eclipse.xtend.lib;bundle-version = "2.14.0";bundle
-version = "2.14.0";resolution:=optional,org.eclipse.ui.console;bundle-ve
rsion = "3.8.100",
org.eclipse.ui.editors,
org.eclipse.xtext.xbase.lib;bundle-version = "2.14.0",
org.eclipse.xtext.ui.shared
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: org.mealy.ui
Export-Package: org.mealy.ui.internal,org.mealy.ui.quickfix,org.mealy.ui
.contentassist,
org.mealy.ui.contentassist
Bundle-Activator: org.mealy.ui.internal.MealyActivator
Bundle-ClassPath: lib/mealyMachine-1.0-SNAPSHOT.jar,
.
Запуск того же кода с Xtext 2.16.0 и Java 8 не вызывает такой ошибки и ничего не записывает в манифест при запуске пункта 5 из моего списка.
В чем может быть проблема ?
кроме того: вы проверяли, подходят ли pom и manifest друг к другу?
=> не могли бы вы предоставить пример проекта на github, показывающий проблему
Также зная, что это такое. Генератор пишет манифест, поэтому в этом коде может быть ошибка, но нам снова нужны подробности.
EG новые строки в манифесте выглядят фальшивыми
=> Тест с 2.18.0-SNAPSHOT. Или избежать слияния принятия мер
Как я могу избежать принятия мер по слиянию? Я тестировал его на 2.18.0-SNAPSHOT, и там такое же поведение. Но на всякий случай, когда bundle-version находится в конце строки и прерывается в середине строки, например: bundle -version = "2.14.0";
В первом манифесте нет символов новой строки, потому что я не помещал их туда, когда добавлял туда новые вещи. Но после добавления их за всеми запятыми версия пакета больше не прерывается посередине, поэтому ошибки не возникает. Но дело в том, что некоторые строки все равно добавляются в манифест, так что что-то там дважды.. как мне этого избежать?
пожалуйста, предоставьте полный пример (проект до начала рабочего процесса)
Я тоже не понимаю, почему у тебя нет лайков?
Извините, я не могу опубликовать весь код. У меня нет разрывов строк, потому что когда я читаю манифест следующим образом: ` String current = manifest.getMainAttributes().getValue("Require-Bundle"); ` значением require-bundle является строка со всеми значениями, но без разрывов строки. Затем я добавляю org.eclipse.ui.console следующим образом: 100\"");` ... поэтому нет разрывов строк
просто создайте приветственный проект приветствия мира. измените манифест так, чтобы он воспроизводил проблему. открыть ошибку на github.com/eclipse/xtext-core
Создана проблема github.com/eclipse/xtext-core/issues/1120
похоже, вы наткнулись на ошибку. в качестве обходного пути вы можете попробовать отключить слияние манифеста
eclipsePlugin = {
enabled = true
manifest = {
merge = false
}
}
это помогло. большое спасибо Кристиан Дитрих! Есть ли способ программно добавить этот фрагмент в рабочий процесс wme2? Можно ли получить объект Java из рабочего процесса wme2 на основе файла .wme2, а затем изменить эту конфигурацию?
я не знаю о опции в мастере для этого. возможно, вы можете подать запрос на улучшение для этого.
как насчет изменения только одной переменной за раз, чтобы узнать, связано ли это с Xtext 2.17 или Java 11. Также: вы пробовали tycho 1.4