Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven处理Nexus异常_Java_Maven_Repository_Nexus - Fatal编程技术网

Java Maven处理Nexus异常

Java Maven处理Nexus异常,java,maven,repository,nexus,Java,Maven,Repository,Nexus,我有一个项目,其中有多个子项目(模块)。更具体地说,这是一个Eclipse项目,具有多个特性 问题是,功能可能不需要对发布进行任何更改。出于这个原因,我没有增加版本号,但同一项目中的另一个功能可能会有更改。因为重新部署相同的版本被认为是不好的做法,所以我在Nexus中禁用了该选项 现在,实际的问题发生在我部署时。因此,部署任何具有新版本号的东西都可以正常工作,但在部署旧版本号时,我有点希望maven发出警告,它已经存在于存储库中,然后跳过它,但Nexus会响应: Return code is:

我有一个项目,其中有多个子项目(模块)。更具体地说,这是一个Eclipse项目,具有多个特性

问题是,功能可能不需要对发布进行任何更改。出于这个原因,我没有增加版本号,但同一项目中的另一个功能可能会有更改。因为重新部署相同的版本被认为是不好的做法,所以我在Nexus中禁用了该选项

现在,实际的问题发生在我部署时。因此,部署任何具有新版本号的东西都可以正常工作,但在部署旧版本号时,我有点希望maven发出警告,它已经存在于存储库中,然后跳过它,但Nexus会响应:

Return code is: 400, ReasonPhrase:Bad Request.
这会导致maven在整个部署过程中失败。完全错误是:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project xyz: Failed to deploy artifacts: Could not transfer artifact xyz:target:2.5.8.0 from/to nexus (http://host/nexus/content/repositories/releases): Failed to transfer file: http://host/nexus/content/repositories/releases/x/targets/xyz/2.5.8.0/xyz-2.5.8.0.target. Return code is: 400, ReasonPhrase:Bad Request. -> [Help 1]
build   11-Sep-2015 07:09:57    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project abc: Failed to deploy artifacts: Could not transfer artifact foo:abc:jar:2.5.8.0 from/to nexus (http://host/nexus/content/repositories/releases): Failed to transfer file: http://host/nexus/content/repositories/releases/bar/abc/2.5.8.0/abc.ocl-2.5.8.0.jar. Return code is: 400, ReasonPhrase:Bad Request. -> [Help 1]
问题是,我如何处理此故障/异常?我只想知道它是否已经部署,然后跳过/忽略该工件的部署。

请参阅或
mvn--help

-fae,--fail-at-end    Only fail the build afterwards;
                      allow all non-impacted builds to
                      continue
请参阅或
mvn--help

-fae,--fail-at-end    Only fail the build afterwards;
                      allow all non-impacted builds to
                      continue

Maven中普遍接受的最佳实践是在多模块项目中使用相同的版本。我会切换到那个方案,部署每个模块,即使它在内部并没有真正改变

如果您不想这样做,最好将您的项目分解为多个分别构建和发布的项目


否则,您唯一可以做的黑客解决方法是为已经部署的项目设置Maven部署插件的skip属性。然而,您将不得不手动管理它,从而在代码库上产生额外的开销和混乱。更多信息请参见

Maven中普遍接受的最佳实践是在多模块项目中使用同一版本。我会切换到那个方案,部署每个模块,即使它在内部并没有真正改变

如果您不想这样做,最好将您的项目分解为多个分别构建和发布的项目


否则,您唯一可以做的黑客解决方法是为已经部署的项目设置Maven部署插件的skip属性。然而,您将不得不手动管理它,从而在代码库上产生额外的开销和混乱。更多信息请参见

我同意这一点,但商业不同意。我同意这一点,但商业不同意。这很好,但maven表示不成功。有没有办法在-fae命令中抑制某个特定故障?@SarpKaya我不知道有什么方法。它被称为“最终失败”,而不是忽略有错误的项目。您可以使用
-fn |--fail never
,但这样您就不会轻易识别出“真正的”故障。您必须通过构建的输出来搜索这些内容。这可以正常工作,除非maven将其显示为不成功。有没有办法在-fae命令中抑制某个特定故障?@SarpKaya我不知道有什么方法。它被称为“最终失败”,而不是忽略有错误的项目。您可以使用
-fn |--fail never
,但这样您就不会轻易识别出“真正的”故障。然后,您必须通过构建的输出来搜索这些内容。