我是GitHub公共仓库的维护者。我已经设置了GitHub Actions来构建发布到GitHub Packages的发布。您可以在此处看到该软件包已创建:
https://github.com/paulschwarz/spring-dotenv/packages/135114
我注意到的第一件事是GitHub仅提供了一个Maven安装代码段。我使用此代码将依赖项添加到另一个项目中,它似乎可以正常工作。
现在我想将此包导入Gradle项目。我添加了
dependencies {
implementation ('me.paulschwarz:spring-dotenv:0.0.3')
}
gradle告诉我
Could not find me.paulschwarz:spring-dotenv:0.0.3.
Searched in the following locations:
- https://jcenter.bintray.com/me/paulschwarz/spring-dotenv/0.0.3/spring-dotenv-0.0.3.pom
- https://repo.maven.apache.org/maven2/me/paulschwarz/spring-dotenv/0.0.3/spring-dotenv-0.0.3.pom
这已经很奇怪了,因为我的Maven项目似乎没有解决依赖关系的问题。我必须说我很好奇它是如何工作的?肯定GitHub软件包没有与JCenter或Maven Central集成吗?
无论如何,下一步,添加存储库
repositories {
jcenter()
mavenCentral()
maven { url = uri('https://maven.pkg.github.com/paulschwarz/spring-dotenv') }
}
这时,Gradle应该了解在哪里可以找到软件包。但是,我明白了
> Could not resolve me.paulschwarz:spring-dotenv:0.0.3.
> Could not get resource 'https://maven.pkg.github.com/paulschwarz/spring-dotenv/me/paulschwarz/spring-dotenv/0.0.3/spring-dotenv-0.0.3.pom'.
> Could not GET 'https://maven.pkg.github.com/paulschwarz/spring-dotenv/me/paulschwarz/spring-dotenv/0.0.3/spring-dotenv-0.0.3.pom'. Received status code 401 from server: Unauthorized
这真的是未经授权的401吗?还是URL错误,并且它正在尝试访问授权的端点?
如果它是正品,那为什么呢?这是带有公共软件包的公共仓库。我可以直接从GitHub页面匿名下载该软件包。我在Gradle中做错什么了?
答案 0 :(得分:1)
如您所见,GitHub目前不支持未授权的程序包访问(但计划在将来进行)as explained by one of their staff (May 27 '20):
我们的Maven服务目前不允许未经授权的访问。我们计划在将来提供此服务,但在此之前需要改进服务。
对于操作,您可以将PAT添加到您的秘密存储区,或使用GITHUB_TOKEN进行身份验证。建议您在settings.xml中使用环境变量方法(请参阅setup-java 4),以免将令牌存储在文件中。
答案 1 :(得分:1)
如上所述,您需要对 GitHub 包进行身份验证。
const navItems = document.querySelectorAll(".nav-items");
navItems.forEach(navItem=> {
navItem.addEventListener("click", () =>{
navLinks.classList.remove("nav-active");
burger.classList.remove("toggle");
body.classList.remove("fixed-position");
});
});
GITHUB_USER 在 gradle.properties 中定义,GITHUB_TOKEN 定义为环境变量。 GITHUB_TOKEN 在您的 GitHub Actions 工作流程文件中作为 ${{secrets.GITHUB_TOKEN }}
可用在本地运行时,您必须自己定义它。