【发布时间】:2022-07-09 18:04:20
【问题描述】:
我的 Windows 机器上有一个本地 Eclipse RCP 项目。我的一个远程存储库用于开发,另一个用于发布期间的暂存。在构建和发布过程中使用的工具有 Maven、Git、SSH 和 GitHub。
我可以毫无问题地构建和运行测试:
mvn clean verify
但是当我执行发布准备时:
mvn -X --batch-mode --log-file ./log.txt -Dusername=myUserName release:prepare
我最终得到以下错误:
[INFO] [DEBUG] Could not find metadata vcs:target-platform:0.0.1-SNAPSHOT/maven-metadata.xml in local (C:\Users\pew\.m2\repository)
[INFO] [ERROR] Internal error: java.lang.RuntimeException: Could not resolve target platform specification artifact vcs:target-platform:target:0.0.1-SNAPSHOT -> [Help 1]
我可以从 CLI 通过 SSH 向 GitHub 进行身份验证。
据我了解,maven-metadata.xml 文件应在发布工件时生成......还是我错了?发布准备后,我在机器上的任何地方都找不到该文件。 Eclipse项目中的SNAPSHOT版本有问题吗?我认为这些版本应该在生成发布时由 Maven 发布插件自动转换为固定版本?
由于我是新手,我可能错过了一些必要的设置。
非常感谢任何指导。
这是我的 pom.xml:
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>vcs</groupId>
<artifactId>vcs.root</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<properties>
<tycho.version>2.3.0</tycho.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<scm>
<developerConnection>scm:git:ssh://github.com/myUserName/vcs.git</developerConnection>
<tag>vcs.root-0.0.1</tag>
</scm>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>11.0.13</version>
<vendor>Eclipse Adoptium</vendor>
</jdk>
<jdk>
<version>15.0.2</version>
<vendor>Eclipse Adoptium</vendor>
</jdk>
<jdk>
<version>16.0.2</version>
<vendor>Eclipse Adoptium</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<executionEnvironment>org.eclipse.justj.openjdk.hotspot.jre.full-15</executionEnvironment>
<target>
<artifact>
<groupId>vcs</groupId>
<artifactId>target-platform</artifactId>
<version>0.0.1-SNAPSHOT</version>
</artifact>
</target>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<stagingRepository>https://github.com/myUserName/vcs_stage.git</stagingRepository>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>bundles</module>
<module>features</module>
<module>releng</module>
<module>tests</module>
</modules>
..这是日志文件的第一部分和最后一部分(太大而无法包含所有内容):
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: C:\Program Files (x86)\Apache\apache-maven-3.8.1
Java version: 15.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-15.0.2
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
[DEBUG] Reading global settings from C:\Program Files (x86)\Apache\apache-maven-3.8.1\conf\settings.xml
[DEBUG] Reading user settings from C:\Users\pew\.m2\settings.xml
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for C:\Users\pew\.m2\repository
.
.
.
[INFO] [DEBUG] target-platform-configuration for MavenProject: vcs:info.wallberg.library.fileextractor.plugin:1.0.0-SNAPSHOT @ C:\Users\pew\work\git\vcs\bundles\info.wallberg.library.fileextractor.plugin\.polyglot.META-INF:
[INFO] <?xml version="1.0" encoding="UTF-8"?>
[INFO] <configuration>
[INFO] <executionEnvironment>org.eclipse.justj.openjdk.hotspot.jre.full-15</executionEnvironment>
[INFO] <target>
[INFO] <artifact>
[INFO] <groupId>vcs</groupId>
[INFO] <artifactId>target-platform</artifactId>
[INFO] <version>0.0.1-SNAPSHOT</version>
[INFO] </artifact>
[INFO] </target>
[INFO] <environments>
[INFO] <environment>
[INFO] <os>win32</os>
[INFO] <ws>win32</ws>
[INFO] <arch>x86_64</arch>
[INFO] </environment>
[INFO] </environments>
[INFO] </configuration>
[INFO] [DEBUG] Could not find metadata vcs:target-platform:0.0.1-SNAPSHOT/maven-metadata.xml in local (C:\Users\pew\.m2\repository)
[INFO] [ERROR] Internal error: java.lang.RuntimeException: Could not resolve target platform specification artifact vcs:target-platform:target:0.0.1-SNAPSHOT -> [Help 1]
[INFO] org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: Could not resolve target platform specification artifact vcs:target-platform:target:0.0.1-SNAPSHOT
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:564)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] Caused by: java.lang.RuntimeException: Could not resolve target platform specification artifact vcs:target-platform:target:0.0.1-SNAPSHOT
[INFO] at org.eclipse.tycho.core.resolver.DefaultTargetPlatformConfigurationReader.addTargetArtifact (DefaultTargetPlatformConfigurationReader.java:445)
[INFO] at org.eclipse.tycho.core.resolver.DefaultTargetPlatformConfigurationReader.setTarget (DefaultTargetPlatformConfigurationReader.java:371)
[INFO] at org.eclipse.tycho.core.resolver.DefaultTargetPlatformConfigurationReader.getTargetPlatformConfiguration (DefaultTargetPlatformConfigurationReader.java:98)
[INFO] at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject (DefaultTychoResolver.java:97)
[INFO] at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead (TychoMavenLifecycleParticipant.java:99)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:264)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:564)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] [ERROR]
[INFO] [ERROR]
[INFO] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[INFO] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] vcs.root 0.0.1-SNAPSHOT ............................ FAILURE [ 3.514 s]
[INFO] [aggregator] bundles 0.0.1-SNAPSHOT ................ SKIPPED
.
.
.
[INFO] [aggregator] features 0.0.1-SNAPSHOT ............... SKIPPED
.
.
.
[INFO] [aggregator] releng 0.0.1-SNAPSHOT ................. SKIPPED
[INFO] [product] ... 0.0.1 ............................ SKIPPED
[INFO] [target] target-platform 0.0.1-SNAPSHOT ............ SKIPPED
[INFO] [aggregator] tests 0.0.1-SNAPSHOT .................. SKIPPED
.
.
.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.532 s
[INFO] Finished at: 2022-03-19T16:52:48+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:3.0.0-M5:prepare (default-cli) on project vcs.root: Maven execution failed, exit code: '1' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:3.0.0-M5:prepare (default-cli) on project vcs.root: Maven execution failed, exit code: '1'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease (PrepareReleaseMojo.java:394)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute (PrepareReleaseMojo.java:327)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.shared.release.ReleaseExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute (AbstractRunGoalsPhase.java:90)
at org.apache.maven.shared.release.phase.RunPrepareGoalsPhase.execute (RunPrepareGoalsPhase.java:46)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare (DefaultReleaseManager.java:205)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare (DefaultReleaseManager.java:101)
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease (PrepareReleaseMojo.java:390)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute (PrepareReleaseMojo.java:327)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.shared.release.exec.MavenExecutorException: Maven execution failed, exit code: '1'
at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals (InvokerMavenExecutor.java:404)
at org.apache.maven.shared.release.exec.AbstractMavenExecutor.executeGoals (AbstractMavenExecutor.java:93)
at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute (AbstractRunGoalsPhase.java:83)
at org.apache.maven.shared.release.phase.RunPrepareGoalsPhase.execute (RunPrepareGoalsPhase.java:46)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare (DefaultReleaseManager.java:205)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare (DefaultReleaseManager.java:101)
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease (PrepareReleaseMojo.java:390)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute (PrepareReleaseMojo.java:327)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:564)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
【问题讨论】:
-
根据documentation of
release:prepare,这样做会“将 POM 中的版本从 x-SNAPSHOT 更改为新版本”。但是例如对于没有 POM 的 Tycho,这是没有意义的。即使有pom.xml,OSGi 世界中的SNAPSHOT版本又是什么?我猜release:prepare只了解 Maven 依赖项,而不了解 p2。 Tycho extras 提供类似的东西。这是你要找的吗? -
你可能是对的。考虑到我是这种开发的新手,我可以想象我误解了这种情况下的概念。我一定会看看 Tycho 的附加功能,看看我能用什么。非常感谢您快速简洁的回复。
-
与 Maven 相比,在 OSGi/Eclipse 中,依赖关系也必须在运行时解决,而不仅仅是在编译时,使用更高级且有些不同的依赖关系概念。使用 Tycho 时,Tycho 从 p2 存储库中获取依赖项,因为 Maven 核心不知道如何做到这一点。因此,您不能将基于常规 Maven 依赖项的内容用于使用 Tycho 构建的内容。
标签: java maven eclipse-rcp tycho