GCP / Maven上的鲜肉新手
我下载了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“知道”安装了码头并使用它?
当你使用速记插件目标jetty:run-exploded
或jetty: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>