我有一个已导入eclipse的多模块maven项目(版本:2019-09 R(4.13.0)),我不时需要执行“ Maven->更新项目”。不幸的是,这导致与我正在使用的deploy插件相关的maven构建错误。我需要使用备用插件才能将项目的工件部署到JFrog的bintray存储库。这是我在Eclipse控制台窗口中看到的错误示例:
Description Resource Path Location Type
Execution error (com.carrotgarden.maven:bintray-maven-plugin:1.5.20191113165555:deploy:default:deploy)
org.apache.maven.plugin.MojoFailureException: Execution error
at com.carrotgarden.maven.bintray.BaseExecute.execute(BaseExecute.scala:30)
at com.carrotgarden.maven.bintray.BaseExecute.execute$(BaseExecute.scala:18)
at com.carrotgarden.maven.bintray.DeployMojo.execute(DeployMojo.scala:26)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:333)
at org.eclipse.m2e.core.internal.embedder.MavenImpl.lambda$7(MavenImpl.java:1380)
...
Caused by: org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.ibm.cloud:global-catalog:jar:99-20200508.153213-1 from/to bintray (https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog): Failed to transfer https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog/com/ibm/cloud/global-catalog/99-SNAPSHOT/global-catalog-99-20200508.153213-1.jar. Error code 400, Bad Request
at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:146)
at org.apache.maven.plugin.deploy.AbstractDeployMojo.deploy(AbstractDeployMojo.java:171)
at com.carrotgarden.maven.bintray.DeployMojo.protected$deploy(DeployMojo.scala:141)
at com.carrotgarden.maven.bintray.DeployMojo.$anonfun$executeDeploy$1(DeployMojo.scala:141)
... 33 more
Caused by: org.eclipse.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.ibm.cloud:global-catalog:jar:99-20200508.153213-1 from/to bintray (https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog): Failed to transfer https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog/com/ibm/cloud/global-catalog/99-SNAPSHOT/global-catalog-99-20200508.153213-1.jar. Error code 400, Bad Request
at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:302)
at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:211)
... 40 more
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact com.ibm.cloud:global-catalog:jar:99-20200508.153213-1 from/to bintray (https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog): Failed to transfer https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog/com/ibm/cloud/global-catalog/99-SNAPSHOT/global-catalog-99-20200508.153213-1.jar. Error code 400, Bad Request
at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:856)
at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:1)
... 43 more
Caused by: io.takari.aether.connector.TransferException: Failed to transfer https://bintray.com/api/v1/maven/ibm-cloud-sdks/platform-services-java-sdk/com.ibm.cloud:global-catalog/com/ibm/cloud/global-catalog/99-SNAPSHOT/global-catalog-99-20200508.153213-1.jar. Error code 400, Bad Request
at io.takari.aether.connector.AetherRepositoryConnector.handleResponseCode(AetherRepositoryConnector.java:372)
at io.takari.aether.connector.AetherRepositoryConnector.access$8(AetherRepositoryConnector.java:362)
... 44 more
pom.xml /public-global-catalog line 5 Maven Build Problem
错误中引用的模块pom文件的第5行是模块pom的<parent>
部分的开头。对于Failed to deploy
和Failed to transfer
错误,我并不感到惊讶,因为我在本地沙箱中没有进行实际部署所必需的资格,并且无论如何,项目的快照工件都不存在于Bintray存储库中。
我不确定为什么“ Maven->更新项目”首先试图建立“部署”目标。我当然不希望它:)任何人都知道我如何可以防止这种情况发生?我可以配置“ Maven->更新项目”使用的目标吗?
我从eclipse m2e项目的邮件列表中获得了一些帮助。避免在eclipse中看到错误的一种方法是将<?m2e ignore?>
添加到插件的<execution>
配置中,如下所示:
<execution>
<?m2e ignore?>
<id>bintray-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
这显然告诉eclipse m2e插件在eclipse内更新项目配置时只是忽略了这个目标。