Maven无法识别已安装码头

时间:2019-02-25 15:42:46

标签: macos maven jetty

GCP / Maven上的新鲜肉类新手

  • 带有Visual Studio Code(最新)的OSX 10.14.3
  • 带有Maven的GCP SpringBoot API
  • 关于码头的其他问题似乎比我更远。
  • 下面的“流程”是为了揭示标题中提出问题的步骤...我认为重要的是要了解我如何到达自己所在的位置,如果您乐于提供帮助,您可能希望知道这个吗?好的,我们开始...

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

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

我不能使用与GCP存储桶名称相同的唯一项目ID。

所以,当我运行

  

gcloud初始化

并选择或创建配置,并使用唯一的项目ID制作我自己的项目,这是否会自动覆盖项目ID的每个POM文件定义?还是我需要做一些Maven clean命令来更改它???

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

  

MVN清洁码头:运行爆炸-Dbookshelf.bucket = MY-BUCKET

甚至尝试过:

  

mvn jetty:run

我得到一个构建失败,上面写着:

  

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

所以...我

  

酿造码头

然后要开始使用码头,我必须将“插入”详细信息复制到我的POM文件中...其中一个,因为有几个?

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

我想我会停止这个问题:

我如何使自己“知道”码头的安装和使用情况?

1 个答案:

答案 0 :(得分: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>