maven未能识别码头已安装

问题描述 投票:0回答:1

GCP / Maven上的鲜肉新手

  • OSX 10.14.3与Visual Studio代码(最新)
  • 使用Maven的GCP Spring Boot API
  • 关于码头的其他问题似乎比我更进一步。
  • 下面的“流程”是为了揭示在标题中提出我的问题的步骤...我认为重要的是看到我如何到达我的位置,如果你非常友好地提供帮助,你会想知道这个?好的,我们走吧......

我下载了GCP getting-started-java github示例,并希望运行书架示例。

当我查看多个POM文件时,我看到每个文件都引用了GCP的项目ID。

我不能使用相同的项目ID,因为它们是唯一的,就像GCP存储桶名称一样。

所以,当我跑

gcloud init

并选择或创建配置并使用唯一的项目ID创建我自己的项目,这会自动覆盖项目ID的每个POM文件定义吗?或者我需要做一些maven clean命令来改变它?

好吧......当我在每个文件夹中使用RTFM时,它会说

mvn clean jetty:run-explosion -Dbookshelf.bucket = MY-BUCKET

他甚至尝试过:

mvn码头:跑

我得到一个构建失败,说:

[错误]在当前项目和插件组中找不到前缀'jetty'的插件

所以我

brew安装码头

然后'开始'jetty说我必须将'插入'细节复制到我的POM文件中...哪一个,因为有几个?

但是当我安装VS Code插件时,它已经更新了所有POM文件;我仍然得到“找不到前缀'jetty'的插件”错误

我想我会停止这个问题:

我如何让maven“知道”安装了码头并使用它?

macos maven jetty
1个回答
1
投票

当你使用速记插件目标jetty:run-explodedjetty:run maven试图找到插件。这个简写形式需要解决groupId:artifactId:version:goal才能运行。

这种长期形式将是......

$ mvn org.eclipse.jetty:jetty-maven-plugin:9.4.15.v20190215:run

要解决此问题,只需将插件添加到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">
  ...
  <build>
    ...
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>9.4.15.v20190215</version>
        </plugin>
      </plugins>
    </pluginManagement>
    ...
  </build>
</project>

当您使用简写语法时,上面将始终使用特定版本的jetty-maven-plugin。

或者,并且对使用哪个版本的控制较少,就是设置pluginGroup in maven's $HOME/.m2/settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <pluginGroups>
    <pluginGroup>org.eclipse.jetty</pluginGroup>
  </pluginGroups>
  ...
</settings>
© www.soinside.com 2019 - 2024. All rights reserved.