teamcity_TeamCity工件:HTTP,Ant,Gradle和Maven

teamcity

您可以通过几种方式检索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>

Gradle

与上面的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

将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://www.mzph.cn/news/356208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgis双标准纬线等角圆锥投影_世界地图是怎么制作出来的,各投影算法的来历...

今天小编带大家了解一下下&#xff0c;目前通用的世界地图是怎样作出来的。一、通用的世界地图版本——“墨卡托投影”16世纪早期&#xff0c;正值大航海时代&#xff0c;航海家们发现很难将他们的航线画在图上&#xff0c;如何将球面上的一部分绘制在平面上&#xff0c;用直线…

js区分大小写

JavaScript 区分大小写 区分大小写 JavaScript 语言是区分大小写的&#xff0c;不管是命名变量还是使用关键字的时候。 如前面 alert弹出提示框 的例子&#xff0c;如果将 alert 命令改为 ALERT 或者 alerT 等&#xff1a; <html> <head> <script type"tex…

测试双打:模拟,假人和存根

大多数班级都有合作者。 在进行单元测试时&#xff0c;您通常希望避免使用那些协作者的实际实现方式来避免测试的脆弱性和绑定/耦合&#xff0c;而应使用测试双打&#xff1a;模拟&#xff0c;存根和双打。 本文引用了有关该主题的两篇现有文章&#xff1a;Martin Fowler的Mock…

计算机的iscsi配置,PC端的iSCSI参数设置方法

PC端的iSCSI参数设置方法上面介绍完NAS端的设置&#xff0c;接下来再来给大家介绍一下PC端的iSCSI设置&#xff0c;主要是实现在PC端上连接使用NAS上的iSCSI存储空间&#xff0c;这里我们以Windows 7 SP1系统为例(Windows8上的设置基本与之类似)。1.首先打开控制面板&#xff0…

纸筒制作机器人_5个万圣节小手工,带孩子一起动手制作,简单又有趣!

在西方国家&#xff0c;除了圣诞节&#xff0c;最受期待的节日莫过于是十月底的万圣节了&#xff0c;提起这个节日&#xff0c;这五大元素可以说是不错的体现&#xff1a;搞怪的南瓜、可爱的蜘蛛、萌萌哒蝙蝠、点睛之笔的蜡烛&#xff0c;以及可以用来迎客的门饰。今天我们就来…

一些常用正则表达式片段的分析

前言&#xff1a; 明天就要奔赴上海了&#xff0c;希望是个好的开始&#xff0c;好久没用正则表达式了&#xff0c;还好之前好好学习过&#xff0c;捡起来也是很容易&#xff0c;好了&#xff0c;为了才重回巅峰状态&#xff0c;想要入门的可以给大家推荐几篇文章&#xff0c; …

计算机应用昨早领域,计算机应用-第1章.ppt

计算机应用-第1章课程简介 本课程的主要任务是通过讲课和练习&#xff0c;使同学们明确计算机整体概念。掌握计算机中的数制及其表示和运算、计算机系统的基本组成和基本工作原理、典型系统软件和应用软件的使用&#xff0c;以及网络与多媒体的基础知识。培养大家触类旁通的应用…

原理c++_浅谈C/S和B/S架构的工作原理及优缺点

C/S架构一、C/S架构及其背景C/S架构是一种比较早的软件架构&#xff0c;主要应用于局域网内。在这之前经历了集中计算模式&#xff0c;随着计算机网络的进步与发展&#xff0c;尤其是可视化工具的应用&#xff0c;出现过两层C/S和三层C/S架构&#xff0c;不过一直很流行也比较经…

java笔记之线程方式1启动线程

* 需求&#xff1a;我们要实现多线程的程序。 * 如何实现呢? * 由于线程是依赖进程而存在的&#xff0c;所以我们应该先创建一个进程出来。 * 而进程是由系统创建的&#xff0c;所以我们应该去调用系统功能创建一个进程。 * Java是不能直接调用系统功能的&#xff0c;所…

2015年Devoxx比利时–最后的想法

好吧&#xff0c;另一个Devoxx对我而言已经结束了&#xff0c;它必须是第六次中的第五次&#xff08;或更多次&#xff09;不记得说实话。 距离我上次上任已经3年了&#xff0c;所以有点回头了。 Devoxx&#xff08;比利时&#xff09;正在成长&#xff0c;实际上这是我第一次…

全国职业院校技能大赛软件测试题目,我院荣获2017年全国职业院校技能大赛软件测试赛项一等奖...

6月6日&#xff0c;2017年全国职业院校技能大赛“软件测试”赛项在河南许昌落下帷幕&#xff0c;共有来自全国29个省市(自治区)的87支代表队261名选手参加比赛。由我院计算机系陈爽、张冬雪、侯博睿等三名同学组成的北京市第二代表队荣获大赛一等奖(第五名)。王红霞、温绍洁荣获…

ntp如何确认与服务器偏差_CentOS 8 启用 NTP 服务

NTP 服务是什么和为什么我们需要在我们的服务器启用 NTP 服务&#xff1f;可能很多人都不是非常了解&#xff0c;简单来说就是我们希望我们服务器的时间是准确的没有偏差的。这个的意义在数据插入和你程序取得计算机时间的时候是准确的。比如说在 java 中如果 new date() 将会获…

JavaFX上手--第1天

1.第一个JavaFX Application JavaFX 使用Java来制作可视化图形&#xff0c;可以做动画和3D效果&#xff0c;JavaFX从JDK中直接使用。 package application;import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene…

年月日软件测试用例的设计,实验三日期题白盒测试用例设计.doc

实验三日期题白盒测试用例设计日期问题白盒测试用例的设计(实验时间2012.3.21)一、实验目的1&#xff0e;熟练掌握如何运用基路径测试方法进行测试用例设计。二、实验内容1、题目前一日函数PreDate是NextDate的逆函数(代码实现见下)&#xff0c;实现功能为&#xff1a;输入1800…

机制 linux_从一道面试题谈linux下fork的运行机制

今天一位朋友去一个不错的外企面试linux开发职位&#xff0c;面试官出了一个如下的题目&#xff1a;给出如下C程序&#xff0c;在linux下使用gcc编译&#xff1a;#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){pid_t …

p1417 烹调方案_Java 8的烹调方式–拼图项目

p1417 烹调方案什么是Project Jigsaw&#xff1a;Project Jigsaw是使Java编译器模块知道的项目。 多年以来&#xff0c;Java API一直是单块的&#xff0c;即从代码的任何部分都可以平等地看到整个API。 还没有任何方法可以声明代码对任何其他用户库的依赖关系。 拼图项目试图以…

jQuery progression 表单进度

progression.js是一款表单输入完成进度插件。支持自定义提示框大小、方向、左边、动画效果、间距等&#xff0c;也支持是否显示进度条、字体大小、颜色、背景色等。 在线实例 实例演示 使用方法 <form id"myform"> <p> <label>点击一个…

教学案例 计算机,宁夏计算机教学案例

宁夏计算机教学案例&#xff0c;答辩老师不仔细看**跟他们发现不了你**中的问题根本是两个概念。宁夏计算机教学案例&#xff0c; 生手指从未使用过计算机系统的学习者。他们不熟悉计算机的操作&#xff0c;缺乏有关计算机系统的知识。他们对计算机会产生一种陌生的感觉。新手指…

python读取多个文件夹图片_python或C++读取指定文件夹下的所有图片

本文实例为大家分享了python或C读取指定文件夹下的所有图片&#xff0c;供大家参考&#xff0c;具体内容如下1.python读取指定文件夹下的所有图片路径和图片文件名import cv2from os import walk,pathdef get_fileNames(rootdir):data[]prefix []for root, dirs, files in wal…

您在2016年会做什么? Apache Spark,Kafka,Drill等

让我们玩得开心。 这是新的一年的开始-我们正处于新事物的门槛上-因此让我们期待您在2016年可能会做的事情。现在我知道做出预测的风险&#xff0c;尤其是有记录的预测&#xff0c;但是我很高兴您能在一年后回访&#xff0c;看看我对2016年的预测是如何完成的。 您在2016年会…