`
maishj
  • 浏览: 86043 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

maven错误排查

 
阅读更多

最近项目使用maven-deploy时出现

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project wenwo-platform-parent: Failed to deploy artifacts: Could not transfer artifact com.wenwo.platform:wenwo-platform-parent:pom:2.0.0-20141106.070944-275 from/to snapshots (http://192.168.1.45:8081/nexus/content/repositories/snapshots): Failed to transfer file: http://192.168.1.45:8081/nexus/content/repositories/snapshots/com/wenwo/platform/wenwo-platform-parent/2.0.0-SNAPSHOT/wenwo-platform-parent-2.0.0-20141106.070944-275.pom. Return code is: 500, ReasonPhrase: Server Error. -> [Help 1]
原因是服务器满了。
 
以下转的

错误信息如下格式: Error deploying artifact: Failed to transfer file:… Return code is:4xx 也就是说前面错误的信息都是一样的,只是后面返回的HTTP状态数字不同。

 

1. Return code is: 405 这个问题害我查了两个多小时才发现错误的根源,简单的错误就是在Maven执行到上传文件到服务器的时候出现一个HTTP 405错误。开始的时候总以为是Maven本身的问题,所以在这个上面浪费了不少时间。后来仔细查了405错误的含义是“用来访问本页面的 HTTP 方法不被允许”,最后终于发现是因为前面repository的地址写错了,或者是端口写错,或者是地址中的某个单词拼错了,反正原因就是 repository的地址写错了。

 

2. Return code is: 401或者Return code is: 403 其实403错误就是“禁止访问”的含义,所以问题的根源肯定在授权上面。Maven在默认情况下会使用deployment帐号(默认密码deploy) 登录的系统,但是关键的Nexus中Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无法部署的问题在这个地方,方法是将其修改为“Allow Redeploy”就可以了。 到这里还没有结束,因为如果直接按照上面的设置的话会有一个安全问题,那就是这样所有的开发人员都可以将构件部署到Nexus的releases仓库中了,时间长了会导致这个仓库中非常乱,这也应该是nexus为什么默认情况下将Release仓库的发布权限关闭的原因了。解决这个问题的整体思路就是在部署构件的时候需要使用用户名和密码登录,操作如下: (1) 首先将Releases仓库默认的Deployment Policy修改为“Allow Redeploy”; (2) 然后在右边的Security下面的Users中,修改deployment帐号的密码,方法是在帐号上右键,然后选择“Set Password”(PS:这个操作我找了好久,后来无意中右键才找到,呵呵~~); (3) 这个时候如果直接执行 mvn deploy 命令的话就又会出现401错误,还有一步就是将密码设置到Maven settings.xml中。打开settings.xml文件(${user.home}/.m/settings.xml或%{m2_home} /conf/settings.xml),找到,然后修改信息如下: <ID>nexus-releases<\/ID> <USERNAME>deployment<\/USERNAME> <PASSWORD>deploydv89<\/PASSWORD> <ID>nexus-snapshots<\/ID> <USERNAME>deployment<\/USERNAME> <PASSWORD>deploydv89<\/PASSWORD> 这里需要特别说明一句的是里面的id必须和你在项目pom.xml文件中distributionManagement下面设置的仓库id一致!当然了,这个里面你也可以设置admin帐号,或者参照deployment的权限手动添加新的帐号等等都是可以的。 当然,问题到这里已经得到了比较完美的解放,但是 如果有人还要较真的话会想到帐号的密码直接放到配置文件里面不是很安全。其实只要这里不建议放admin帐号,而deployment是无法登录的。如果非要更安全一些的话,也可以使用Maven 2.1.0之后所提供的密码加密功能,操作的步骤如下: (1) 使用“mvn –encrypt-master-password xxx”或“mvn –emp xxx”创建一个主密钥,后面的xxx就是你所要设置的密钥的内容,这个密钥主要用于后面加密密码来用的;命令执行之后会产生一个类似 {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}形式的字符串。 (2) 在${user.home}/.m/目录下创建一个名为settings-security.xml文件,我们将刚刚产生的主密钥放到这个文件中,文件的内容如下: {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=} 注意,这个settings-security.xml文件一定要放在${user.home}/.m/目录下面,而不能放在${m2_home}/conf目录下! (3) 使用“mvn –encrypt-password xxx”或“mvn –ep xxx”命令对帐号的密码进行加密,后面的xxx就是帐号的密码,加密之后依然会产生一个“{xxx}”形式的字符串,将这个字符串替换上面 settings.xml文件中的server下面的password节点内容即可。还有一种更安全的方式,就是将主密钥放到U盘里面,具体的操作可以看下面的参考资料。

 

3. Return code is: 400 400错误的含义是“错误的请求”,在这里的原因是往往是没有部署到nexus的仓库中。nexus的repository分三种类型:Hosted、 Proxy和Virtual,另外还有一个repository group(仓库组)用于对多个仓库进行组合。部署的时候只能部署到Hosted类型的仓库中,如果是其他类型就会出现这个400错误。 还有一种情况也会出现400错误,就是默认情况下部署构件到Releases仓库中有时也会出现400错误,这个原因就像上面提到的那样,Nexus中 Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无论你在settings.xml文件中将server的username设置为deployment还是使用admin都是无 法部署的,就会出现这个400错误。这个问题也困扰了我好长时间,而且我还看到网上有人说admin没有部署构件的权限,这个是不对的。修改的方法可以参 考上面第2条的做法。

 

分享到:
评论

相关推荐

    maven3.0版本下载

    除此之外,Maven3.0在用户界面和错误报告上也有所优化。例如,命令行输出更加人性化,错误信息更加详细,方便开发者快速定位问题。对于大型企业环境,Maven3.0还加强了与企业级持续集成工具的集成,如Jenkins、...

    maven3.6.3.zip

    2. **错误修复**:该版本包含了许多错误修复,确保了稳定性和可靠性,解决了前一版本中出现的一些问题,为开发者提供了更稳定的开发环境。 3. **增强的插件管理**:Maven 3.6.3对插件管理机制进行了改进,支持更好...

    maven-eclipse-plugin

    【maven-eclipse-plugin】是Maven生态中的一个重要插件,它主要负责将Maven项目导入Eclipse这样的IDE中,以便于开发人员进行便捷的开发和管理。...同时,了解Maven的配置和问题排查方法也是每个Maven用户必备的技能。

    Maven

    当Maven构建过程中遇到问题,如编译错误或依赖找不到时,可以通过命令行执行mvn clean install -X来开启详细日志,帮助定位问题。同时,Maven的错误信息通常包含了解决方案的线索。 9. **Maven Archetypes**: ...

    apache-maven-3.8和3.6

    - Maven 3.8 改进了错误报告,提供了更清晰的错误消息和堆栈跟踪,便于问题排查。 2. **依赖管理**: - Maven 自动管理项目的依赖关系,避免了类路径冲突。在两个版本中,Maven 都会使用`&lt;dependencies&gt;`标签来...

    3.3.9版本的maven

    2. **更好的错误处理**: 在处理依赖解析和插件执行时,Maven 3.3.9 提供了更清晰的错误信息和堆栈跟踪,便于问题排查。 3. **增强的插件管理**: 改进了插件版本管理和执行,减少了由于插件版本不匹配导致的问题。 ...

    Maven: Unable to import maven project解决方案.pdf

    按照以上步骤进行排查和调整,大多数情况下可以解决“Unable to import Maven project”的问题。如果问题依然存在,建议查看IDEA的错误日志,从中获取更具体的错误信息,以便进一步诊断和修复。在实际操作中,遇到这...

    maven3.5官方版本-已配置阿里云仓库地址

    4. 错误报告增强:更详细的错误信息和堆栈跟踪,便于问题排查。 5. 优化的内存使用:降低了内存占用,提升了大型项目构建的性能。 在使用Maven3.5时,我们可以通过命令行工具进行各种操作,如`mvn clean install`来...

    Intellij IDEA 与maven 版本不符

    这个问题通常表现为在尝试导入Maven项目时,IDE返回一个错误提示,如:“Unable to import maven project: See logs for details”,并在事件日志(Event Log)中显示更详细的错误信息,例如:“No implementation for...

    dubbo项目maven依赖

    在IT行业中,Dubbo是一个非常重要的分布式服务框架,...通过理解Dubbo和Maven的工作原理,以及排查和解决编译问题的方法,你将能够成功地从源码编译出Apache Dubbo项目。记住,持续学习和实践是成为IT行业大师的关键。

    maven 3.39

    - Maven 3.3.9版本在执行生命周期阶段时更稳定,减少了因生命周期错误导致的构建失败。 5. **仓库管理** - Maven默认使用远程仓库,如Maven Central Repository,也支持自定义的私有仓库。 - 3.3.9版本在仓库...

    maven-3.3.9.zip

    对于遇到的问题,Maven提供了详细的错误报告,帮助开发者定位和解决构建过程中的问题。 总结来说,Maven 3.3.9是Java开发中不可或缺的工具,它通过统一的构建方式和强大的依赖管理,极大地简化了项目管理,提高了...

    maven helper idea 插件

    它提供了多种实用功能,帮助开发者更高效地处理Maven依赖关系,排查冲突,以及更好地理解和操作POM.xml配置文件。以下将详细介绍该插件的主要功能和使用方法。 1. **依赖分析**:Maven Helper的核心功能之一是提供...

    Win10 环境下Apache Maven的配置文件以及教程

    8. 日志和错误排查 Maven的输出信息可以帮助你了解构建过程中遇到的问题。如果遇到问题,检查日志输出,通常会有错误提示和解决方案。 总结,Win10环境下配置Apache Maven需要安装Maven、设置环境变量、编辑`...

    Maven3实战笔记(全)

    10. **问题排查与优化**:Maven提供丰富的命令行选项,如`-X`(详细模式)和`-e`(错误堆栈跟踪),帮助开发者调试和优化构建过程。 通过阅读《Maven3实战笔记(全)》,开发者不仅可以掌握Maven的基本操作,还能了解...

    maven3.2.5

    Maven 3.2.5 在下载和上传依赖时有优化,减少了网络延迟和错误。 6. **多模块项目** Maven 支持多模块项目结构,一个顶层 POM 可以管理多个子模块,每个子模块都有自己的 POM。这使得大型项目的构建和管理更为...

    maven compare to the ant

    最后,如果问题依旧存在,则需要进一步排查Maven环境本身的问题。 - **解决步骤**: 1. **验证配置**:确认POM文件中的所有配置项都是正确的。 2. **环境检查**:检查Maven安装版本、Java版本是否满足插件的要求...

    MAVENAPACHE

    5. **错误排查**:当遇到"ImportError"时,首先检查Python环境是否正确,numpy库是否已安装并更新至最新版。如果问题仍然存在,检查Maven配置文件(如POM.xml)中执行Python脚本的命令和路径是否正确。 6. **日志和...

    maven私服教程.zip

    这时,你可以通过查看Maven日志、检查服务器状态、调整配置等方式进行排查和优化。 通过学习本教程,你将能够熟练地搭建和管理自己的Maven私服,为团队开发提供高效且安全的依赖管理环境。请务必仔细阅读每一步,...

    maven-3.3.9

    8. **错误处理和日志记录**:3.3.9版提供了更详细的错误信息和日志记录,便于开发者排查问题。 9. **跨平台支持**:Maven是跨平台工具,可在Windows、Linux和Mac OS等操作系统上运行。3.3.9版保证了不同平台的兼容...

Global site tag (gtag.js) - Google Analytics