mvn deploy:deploy-file with status code 401

第三方jar
 

            <dependency>
                <groupId>com.abc</groupId>
                <artifactId>abc-openapi-sdk</artifactId>
                <version>2.0</version>
            </dependency>

mvn deploy 命令:

mvn deploy:deploy-file -DgroupId=com.abc -DartifactId=abc-openapi-sdk -Dversion=2.0 -Dpackaging=jar -Dfile=abc-openapi-sdk-2.0.jar -Durl=http://artifactory.xxx.com/artifactory/thirdparty-releases-local/ -DrepositoryId=repo

解释:

  • –Dversion  版本信息
  • -DrepositoryId  仓库标识id
  • -Durl 私服上仓库的位置,打开nexus——>repositories菜单,可以看到该路径。
  • -Dfile 直接写文件名即可

如果不在当前路径,-DartifactId 要声明全路径;

坑来了,作者在上传的时候一直报 with status code 401 错误,查不到原因,

最后发现是-DrepositoryId写错了,DrepositoryId要与maven setting.xml 中仓库认证的 id 保持一致,

原来是这么写的:

mvn deploy:deploy-file -DgroupId=com.abc -DartifactId=abc-openapi-sdk -Dversion=2.0 -Dpackaging=jar -Dfile=abc-openapi-sdk-2.0.jar -Durl=http://artifactory.xxx.com/artifactory/thirdparty-releases-local/ -DrepositoryId=thirdparty-releases-local

对比setting.xml

这个必须和 nexus DrepositoryId 对应的仓库标识(id)一致才行,改成:

mvn deploy:deploy-file -DgroupId=com.abc -DartifactId=abc-openapi-sdk -Dversion=2.0 -Dpackaging=jar -Dfile=abc-openapi-sdk-2.0.jar -Durl=http://artifactory.xxx.com/artifactory/thirdparty-releases-local/ -DrepositoryId=repo

执行即可

[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy-file (default-cli) @ standalone-pom ---


.......


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.503 s
[INFO] Finished at: 2021-07-15T14:03:19+08:00
[INFO] ------------------------------------------------------------------------

### 如何在本地部署 HeyGem 要在本地环境中成功部署 HeyGem,可以参考以下方法和注意事项: #### 1. 安装必要的依赖项 确保安装了运行 HeyGem 所需的所有软件组件。这通常包括 Web 服务器、数据库以及构建工具等。例如,在 Linux 系统上可以通过 `yum` 或其他包管理器来完成 HTTPD(Apache)服务的安装[^1]。 ```bash sudo yum -y install httpd ``` 对于 Java 应用程序来说,还需要配置 Maven 和 Nexus 私有仓库用于管理和分发 JAR 文件。如果遇到类似于 “Failed to deploy artifacts: Could not transfer artifact” 的错误,则可能是由于网络连接问题或者认证失败引起的][^[^24]。 #### 2. 配置私有 Nexus 仓库 当您处于内网环境下工作时,可能无法直接访问外部公共存储库。因此建议设置自己的内部 Nexus 实例作为代理或托管角色,并上传所需的第三方库至其中以便后续项目引用它们。 - 使用 mvn clean install 将生成的目标文件存放到本地 .m2/repository 中; - 修改 pom.xml 添加自定义 repository URL 指向您的 nexus 地址; ```xml <distributionManagement> <repository> <id>nexus-releases</id> <!-- 这里填写对应 id --> <url>http://your-nexus-server/content/repositories/releases/</url> </repository> </distributionManagement> <!-- 同时也需要指定 snapshots 如果有的话 --> <snapshots> ... </snapshots> ``` 之后再次尝试执行 mvn deploy 即可解决传输失败的问题[^4]。 #### 3. 发布应用所需资源到目标位置 除了上述提到的技术栈之外,实际业务逻辑实现过程中还会涉及到许多定制化开发成果比如视图对象(View Object),实体对象(Entity Object)等等这些都需要妥善处理好其最终部署路径才能让整个系统正常运转起来[^3]。 具体操作如下: - **控制器类(Controller)** 及其它关联代码应放置于 `$JAVA_TOP/<path_of_your_file>` 下面相应目录结构当中去。 - 对于页面定义(Page Definition XML Files (*.PG.XML)) 则要迁移到 `$PROD_TOP/mds` 路径之下。 最后一步就是调用专门设计出来的导入脚本来完成剩余部分自动化流程啦! 通过以上步骤我们就可以顺利地把HeyGEM应用程序部署到了我们的局域网内的测试环境或者是生产环境之中去了。 ```python # 示例 Python 脚本展示如何验证部署状态 (假设存在这样的接口) import requests response = requests.get('http://localhost/status') if response.status_code == 200: print("Deployment Successful!") else: print(f"Error occurred:{response.text}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值