您可以通过几种方式检索TeamCity工件? 我说有很多选择 ! 如果您使用的是Java构建工具,那么可以使用简单的HTTP请求,Ant + Ivy,Gradle和Maven下载和使用TeamCity构建配置生成的二进制文件。 怎么样? 继续阅读。

构建配置“ id”

在检索任何构建配置的工件之前,您需要知道其"id" ,当浏览相应的配置时,可以在浏览器中看到它的"id" 。 让我们以teamcity.jetbrains.com上托管的IntelliJ IDEA社区版项目为例。 它的“ Community Dist”构建配置提供了许多我们将要使用的工件。 从下面的屏幕截图可以看出,其"id""bt343"

HTTP

匿名HTTP访问可能是获取TeamCity工件的最简单方法,这样做的URL是:

http://server/guestAuth/repository/download/<btN>/<buildNumber>/<artifactName>

为了满足该要求,需要指定3个参数:

btN 如上所述,构建配置"id"
buildNumber 内部版本号或预定义常量之一: "lastSuccessful""lastPinned""lastFinished" 。 例如,您可以从上一次成功的 TeamCity执行中下载定期的IDEA构建。
artifactName 工件名称,例如"ideaIC-118.SNAPSHOT.win.zip" 。 也可以采用"artifactName!archivePath"的形式来读取存档的内容,例如IDEA的生成文件 。 通过请求由TeamCity生成的特殊"teamcity-ivy.xml"工件,可以获取在特定构建中生成的所有工件的列表。

蚂蚁+常春藤

发布到TeamCity的所有工件都带有"teamcity-ivy.xml" Ivy描述符,从而有效地使TeamCity成为Ivy存储库。 下面的代码将IDEA发行版中的"core/annotations.jar" "download/ivy""download/ivy"目录中:

"ivyconf.xml"

<ivysettings><settings defaultResolver='teamcity-repo'/><resolvers><url name='teamcity-repo' alwaysCheckExactRevision='yes' checkmodified='true'><ivy      pattern='http://teamcity.jetbrains.com/guestAuth/repository/download/[module]/[revision]/teamcity-ivy.xml'/><artifact pattern='http://teamcity.jetbrains.com/guestAuth/repository/download/[module]/[revision]/[artifact](.[ext])'/></url></resolvers>
</ivysettings>

"ivy.xml"

<ivy-module version="1.3"><info organisation="com.jetbrains" module="idea"/><dependencies><dependency org="org" name="bt343" rev="lastSuccessful"><include name="core/annotations" ext="jar"/></dependency></dependencies>
</ivy-module>

"build.xml"

<project name="teamcity-download" default="download" xmlns:ivy="antlib:org.apache.ivy.ant"><target name="download" xmlns:ivy="antlib:org.apache.ivy.ant"><taskdef uri="antlib:org.apache.ivy.ant" resource="org/apache/ivy/ant/antlib.xml"/><ivy:configure file    = "${basedir}/ivyconf.xml"/><ivy:resolve   file    = "${basedir}/ivy.xml"/><ivy:retrieve  pattern = "${basedir}/download/ivy/[artifact].[ext]"/></target>
</project>

摇篮

与上面的Ivy示例相同,由于其内置的Ivy支持,使用Gradle检索TeamCity工件相当容易。 除了使用自定义Gradle任务将相同的jar文件"download/gradle""download/gradle"目录外,我们还可以将其用作Java类的"compile"依赖项,并导入IDEA的@NotNull批注:

"Test.java"

import org.jetbrains.annotations.NotNull;public class Test
{private final String data;public Test ( @NotNull String data ){ this.data = data; }
}

"build.gradle"

apply plugin: 'java'repositories {ivy {ivyPattern      'http://teamcity.jetbrains.com/guestAuth/repository/download/[module]/[revision]/teamcity-ivy.xml'artifactPattern 'http://teamcity.jetbrains.com/guestAuth/repository/download/[module]/[revision]/[artifact](.[ext])'}
}dependencies {compile ( 'org:bt343:lastSuccessful' ){artifact {name = 'core/annotations'type = 'jar'}}
}task copyJar( type: Copy ) {from configurations.compileinto "${ project.projectDir }/download/gradle"
}

马文

将Maven与TeamCity结合使用的最佳方法是设置Artifactory存储库管理器及其TeamCity插件 。 这样,您的构建所产生的工件就可以很好地部署到Artifactory,并且可以从那里从任何其他远程Maven存储库中进行服务。

但是,您仍然可以在Maven中使用TeamCity工件,而无需任何其他设置。 "ivy-maven-plugin"桥接了两个世界,使您可以将Ivy解析器插入Maven的运行时环境,下载所需的依赖项,并将它们添加到相应的"compile""test"作用域中。

让我们从Gradle示例中编译相同的Java源代码,但是这次使用Maven。

"pom.xml"

<?xml version="1.0" encoding="UTF-8"?><project xmlns              = "http://maven.apache.org/POM/4.0.0"xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>maven</artifactId><packaging>jar</packaging><version>0.1-SNAPSHOT</version><name>[${project.groupId}:${project.artifactId}:${project.version}]</name><description>Ivy Maven plugin example</description><build><plugins><plugin><groupId>com.github.goldin</groupId><artifactId>ivy-maven-plugin</artifactId><version>0.2.5</version><executions><execution><id>get-ivy-artifacts</id><goals><goal>ivy</goal></goals><phase>initialize</phase><configuration><ivyconf>${project.basedir}/ivyconf.xml</ivyconf><ivy>${project.basedir}/ivy.xml</ivy><dir>${project.basedir}/download/maven</dir><scope>compile</scope></configuration></execution></executions></plugin></plugins></build>
</project>

当该插件运行时,它使用我们之前看到的相同的"ivyconf.xml""ivy.xml"文件解析IDEA注释工件,将其复制到"download/maven"目录并添加到"compile"作用域,因此我们的Java源代码可以编译。

GitHub项目

我的GitHub项目中提供了所有演示的示例。 随意克隆并运行它:

git clone git://github.com/evgeny-goldin/teamcity-download-examples.git
cd teamcity-download-examples
chmod +x run.sh dist/ant/bin/ant gradlew dist/maven/bin/mvn
./run.sh

资源资源

以下链接可以为您提供更多详细信息:

  • TeamCity –访问构建工件的模式
  • TeamCity –通过HTTP访问服务器
  • TeamCity –使用Ant Build脚本配置工件依赖项
  • Gradle –常春藤仓库
  • "ivy-maven-plugin"

就这样,您已经看到了–可使用以下四种方式之一完美访问TeamCity工件:直接HTTP访问,Ant + Ivy,Gradle或Maven。 您使用哪一个? 让我知道!

参考:从Goldin ++博客的JCG合作伙伴 Evgeny Goldin 使用HTTP,Ant,Gradle和Maven获取TeamCity工件 。

翻译自: https://www.javacodegeeks.com/2012/05/teamcity-artifacts-http-ant-gradle-and.html

TeamCity工件:HTTP,Ant,Gradle和Maven相关推荐

  1. teamcity_TeamCity工件:HTTP,Ant,Gradle和Maven

    teamcity 您可以通过几种方式检索TeamCity工件? 我说有很多选择 ! 如果您使用的是Java构建工具,那么可以使用简单的HTTP请求,Ant + Ivy,Gradle和Maven下载和使 ...

  2. maven项目 ant_将旧项目从Ant迁移到Maven的4个简单步骤

    maven项目 ant 一段时间以来,我们一直在考虑将构建从蚂蚁移植到Maven. 它发生在上个月,实际上比我们预期的要简单. 根据我的经验,这里简要介绍了我们遵循的步骤. 我们的应用程序是一个具有多 ...

  3. maven项目 ant_将大型项目从Ant迁移到Maven

    maven项目 ant 事实是我们处在艰难时期. 我们花了将近三个月的时间将构建机制从Ant迁移到Maven . 如果您打算在大型项目中进行同样的安排,那是您必须安排的最短时间. 我们仍在努力解决这种 ...

  4. 将旧项目从Ant迁移到Maven的4个简单步骤

    一段时间以来,我们一直在考虑将构建从蚂蚁移植到Maven. 它发生在上个月,实际上比我们预期的要简单. 根据我的经验,这里简要介绍了我们遵循的步骤. 我们的应用程序是一个具有多个框架和技术的企业Web ...

  5. 将大型项目从Ant迁移到Maven

    事实是,我们处在艰难时期. 我们花了将近三个月的时间将构建机制从Ant迁移到Maven . 如果您打算在大型项目中做同样的事情,那就是您必须安排的最短时间. 我们仍在努力解决这种迁移带来的一些附带影响 ...

  6. gradle和maven区别

    原文连接:http://blog.csdn.net/jueane/article/details/50383431 ------------------------------------------ ...

  7. Java 项目权威排名:Spring生态抢镜,Gradle战胜Maven排第2,点击查看更多...

    作者 | 爱科学的卫斯理关注 来源 | https://www.toutiao.com/i6908912198412681732/ Spring生态 Java项目权威Top200排名-结果出乎你意料 ...

  8. gradle转maven

    Gradle build.gradle to Maven pom.xml 将gradle项目转换成maven项目 #根据build.gradle 生成maven pox.xml 1.将以下配置添加到b ...

  9. Gradle修改缓存路径 和 Gradle修改Maven仓库地址

    Gradle修改缓存路径 修改gradle启动脚本进入gradle安装的bin目录,使用文本编辑器打开gradle.bat文件,在如图的位置添加以下语句 set GRADLE_OPTS="- ...

最新文章

  1. 网络工程师_记录的一些真题_2018上半年上午
  2. SAP S4HANA BP事务代码初始界面的ROLE和Grouping配置
  3. java轻量级并行工具类_16 个超级实用的 Java 工具类
  4. tkFileDialog报错,模块未找到出错:没有名字叫做 tkFileDialog 的模块
  5. LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍
  6. redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
  7. hdu3530Subsequence【单调队列优化dp】2010多校联合
  8. 「装X指南」:手把手教你包装成程序员大佬
  9. NET CMS 大全
  10. 使用Jquery EasyUi常见问题解决方案
  11. CSS学习总结3:CSS定位
  12. mysql完全备份 二进制日志_MySQL完全备份脚本:数据+二进制日志+备份日志
  13. NAACL 2019自然语言处理亮点
  14. tbSchedule 使用
  15. 【T3】打印凭证没有任何反应
  16. python四叶玫瑰数,任意位数自幂数寻找|Python练习系列[4]
  17. 送书|逆向系列-你一定要懂的MD5加密
  18. 武汉java工资水平
  19. SQL语句的约束 总结
  20. python生成图像公章,用PPT就可以做印章?是的,超简单超逼真,教你一分钟搞定...

热门文章

  1. 快速排序算法思想及实现
  2. Servlet其他关联类---ServletContext类
  3. jdk8 npe_JDK 14中更好的NPE消息
  4. 1.0jpa 2.0_Java EE 7之前版本替代JPA 2.1非同步持久性上下文
  5. java 8入门与实践_30个Java入门技巧和最佳实践
  6. jaxb xsd生成xml_使用JAXB和Jackson从XSD生成JSON模式
  7. boot jersey_Jersey和Spring Boot入门
  8. akka的介绍_Akka笔记–演员介绍
  9. Selenium脚本编写技巧和窍门
  10. JDK 12的String :: transform方法的简要但复杂的历史