将自研libGDX核心模块发布至Artifactory遇阻求助
解决libGDX核心模块发布到Artifactory的问题
我完全懂你现在的处境——只做了libGDX核心模块、没搭桌面/安卓这些常规模块,默认的构建配置确实会在发布环节卡壳。先把你给出的构建脚本片段整理清楚,再一步步拆解解决:
你的现有构建脚本片段
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repos..." }
}
}
接下来咱们针对性调整配置,让发布流程跑通:
1. 引入Artifactory与Maven发布插件
首先得在构建脚本里加入必要的插件,不然没法和Artifactory做交互:
buildscript { repositories { mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repos..." } // 加入Gradle插件仓库,用来拉取Artifactory插件 maven { url "https://plugins.gradle.org/m2/" } } dependencies { // 引入Artifactory Gradle插件,选最新稳定版即可 classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.28.1" } } // 应用核心插件 apply plugin: "com.jfrog.artifactory" apply plugin: "maven-publish"
2. 配置模块发布信息
因为只有核心模块,得手动定义发布的构件元数据,包括项目组ID、模块ID和版本号:
// 替换成你的项目组ID,比如com.yourteam.gdx group = "你的项目组ID" // 替换成你的模块版本,快照版就用1.0.0-SNAPSHOT version = "1.0.0" publishing { publications { mavenJava(MavenPublication) { from components.java // 建议同时发布源码和Javadoc,方便其他项目调试 artifact sourceJar artifact javadocJar } } } // 生成源码Jar的任务 task sourceJar(type: Jar) { from sourceSets.main.allJava archiveClassifier.set("sources") } // 生成Javadoc Jar的任务 task javadocJar(type: Jar) { from javadoc archiveClassifier.set("javadoc") }
3. 配置Artifactory连接与仓库信息
这里要填你的Artifactory服务器地址、仓库Key和认证信息,别把明文密码硬编码,用环境变量或者Gradle属性更安全:
artifactory { // 替换成你的Artifactory服务器地址 contextUrl = "http://your-artifactory-server:8081/artifactory" publish { repository { // 替换成你的发布仓库Key,正式版用libs-release-local,快照版用libs-snapshot-local repoKey = "libs-release-local" // 从环境变量或Gradle属性读取账号密码 username = System.getenv("ARTIFACTORY_USER") ?: project.properties["artifactoryUser"] password = System.getenv("ARTIFACTORY_PASS") ?: project.properties["artifactoryPass"] } defaults { publications("mavenJava") publishArtifacts = true publishPom = true } } }
4. 执行发布命令
所有配置完成后,在终端运行这条命令就能完成发布:
./gradlew clean build artifactoryPublish
最后提几个注意点:
- 确保你的Artifactory账号有对应仓库的发布权限
- 如果是快照版本,记得把版本号改成
x.x.x-SNAPSHOT,并切换到快照仓库 - 检查
sourceSets.main是否正确指向你的核心模块源码目录,纯libGDX核心模块一般不需要额外调整
内容的提问来源于stack exchange,提问作者JoseRivas1998
相关产品推荐
相关产品推荐

