如何配置TeamCity自动将Jar包推送至Artifactory
嘿,我来帮你一步步搞定TeamCity自动推送Jar到Artifactory的配置,这是个挺常见的Java CI/CD场景,咱们拆解开来聊:
第一步:必须配置TeamCity的Artifact Paths!
TeamCity得先把你构建出来的Jar包“抓”成自己的构建产物(artifact),之后才能推去Artifactory。所以先去你的项目构建配置里找到Artifact paths这个设置项,填入Jar包的生成路径:
- 如果是Maven项目,一般是
target/*.jar;要是想精准匹配你的myproject-common,可以写target/myproject-common-*.jar - 要是用Gradle,路径通常是
build/libs/*.jar
这里尽量精准匹配,避免把无关的文件也传上去。
第二步:让TeamCity和Artifactory连上
接下来得让TeamCity能访问你的Artifactory实例,推荐用官方的Artifactory插件,比自己写命令省心多了:
- 先去TeamCity服务器的Administration -> Plugins List里确认Artifactory插件已经装上(默认一般都有,没有的话去插件市场搜一下安装就行)
- 然后在Administration里找Artifactory Servers,新增一个服务器配置:
- 填Artifactory的基础URL:
http://artifactory.companyname.net/artifactory(不用后面的webapp路径,核心服务地址就行) - 配置认证:用一个有Artifactory部署权限的账号密码,或者API Key,点“Test Connection”确保能连上。
- 填Artifactory的基础URL:
第三步:配置推送的构建步骤
这里分两种常见情况,看你用的构建工具:
情况1:用Maven/Gradle直接推送(推荐,和构建流程更整合)
如果你之前手动部署用的是Maven的deploy命令,那直接在TeamCity里加个Maven构建步骤,把目标改成deploy就行。
- 注意:要确保Maven的settings.xml里配置了Artifactory的仓库地址和认证信息,或者在TeamCity的Maven步骤里指定包含这些配置的settings文件,也可以用Artifactory插件自动帮你注入认证,省得改本地文件。
要是用Gradle,就在build.gradle里配置好maven-publish插件,指定Artifactory的仓库地址,然后TeamCity的构建步骤执行publish任务就搞定了。
情况2:用TeamCity的Artifactory插件推送(适合不想改项目配置的场景)
如果不想动项目的pom.xml或build.gradle,就新增一个Artifactory Publish构建步骤:
- 选择你刚才配置好的Artifactory服务器
- 在Deploy Path里填你要推的目标路径:
com/companyname/myproject/common/myproject-common(和你手动部署的路径完全对应上) - 在Artifacts to Deploy里选之前配置的Artifact路径,比如
target/*.jar - 还可以加版本号,比如用TeamCity的内置参数
%build.number%,这样每个构建的Jar都有唯一版本,不会覆盖旧包。
几个实用小建议
- 版本号别偷懒:一定要给Jar加唯一版本号,比如用构建号
%build.number%或者Git提交哈希%build.vcs.number%,Artifactory里的包能清晰区分,回滚也方便。 - 权限提前查好:确认TeamCity用的账号在Artifactory里有Deploy权限,不然推送会失败,提前在Artifactory的权限管理里配置好。
- 先测一次小构建:配置完跑个测试构建,然后去Artifactory的目标路径看看有没有新Jar,同时看TeamCity的构建日志,有报错能及时排查。
- 多产物一起推:如果你的项目还生成了sources jar、javadoc jar,直接在Artifact Paths里加上,比如
target/*.jar;target/*-sources.jar,一起推去Artifactory就行。
内容的提问来源于stack exchange,提问作者BAE
相关产品推荐
相关产品推荐

