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;用直线…

计算机的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;以及可以用来迎客的门饰。今天我们就来…

原理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;所…

全国职业院校技能大赛软件测试题目,我院荣获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…

机制 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 …

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

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

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

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

话筒好坏测试软件,如何简单地判断麦克风的质量好坏?

如何简单地判断麦克风的质量好坏&#xff1f;麦克风质量好不好&#xff0c;主要看三点&#xff1a;咪芯&#xff0c;线材和外壳。在挑选麦克风时&#xff0c;我们通常都不会一一上手试用&#xff0c;而是通过它自身的规格参数来进行初步地判断&#xff0c;一般来说&#xff0c;…

怎么保证读取最新数据_Kafka怎么保证数据不丢失?

Kafka怎么保证数据不丢失&#xff1f;这个问题要从3个方面来保证数据不丢失&#xff1a;生产者、服务端、消费者。01producer 生产端是如何保证数据不丢失的1.ack的配置策略acks all (或-1)生产者在发送消息之后&#xff0c;需要等待ISR中所有的副本都成功写入消息之后才能够收…

怎么圆角变直角_衣柜设计个圆角有什么用?效果好看又实用,会这样装的都是老木工...

衣柜设计个圆角有什么用&#xff1f;效果好看又实用&#xff0c;会这样装的都是老木工随着生活水平的不断提高&#xff0c;大家对于生活质量也有着越来越高的期望。从生活起居以及房子的装修中&#xff0c;我们可以看出来。因此家里的东西堆积的也更加的多&#xff0c;这对于储…

浙大计算机硕士比本科985,二本出身的985研究生与985本科生,哪个更厉害?网友:差的太多!...

原标题&#xff1a;二本出身的985研究生与985本科生&#xff0c;哪个更厉害&#xff1f;网友&#xff1a;差的太多&#xff01;概率&#xff0c;还是概率问题。即便2本考研到985是很优秀&#xff0c;但能优秀到让985本科生服气的还是少数。说到底&#xff0c;是因为考研不是绝对…

5调用外部浏览器打开代码_浏览器事件循环

浏览器运行过程中会同时面对多种任务&#xff0c;用户交互事件(鼠标、键盘)、网络请求、页面渲染等。而这些任务不能是无序的&#xff0c;必须有个先来后到&#xff0c;浏览器内部需要一套预定的逻辑来有序处理这些任务&#xff0c;因此浏览器事件循环诞生了&#xff0c;再次强…

JVM上的高并发HTTP客户端

HTTP可能是最流行的应用程序级别协议&#xff0c;并且有许多库在网络I / O之上实现它&#xff0c;这是常规I / O的一种特殊&#xff08;面向流&#xff09;情况。 由于所有I / O都有很多共同点1 &#xff0c;所以让我们开始对其进行一些讨论。 我将集中讨论具有大量并发HTTP请…

win10系统卷影复制服务器,如何使用Windows卷影拷贝服务恢复文件和文件夹

本文介绍了如何使用Windows卷影拷贝服务恢复文件和文件夹&#xff0c;分享给大家&#xff0c;具体如下&#xff1a;什么是卷影拷贝&#xff1f;从Windows XP SP2和Windows Server 2013开始&#xff0c;微软就向Windows操作系统中引入了一项名叫卷影拷贝的服务(Volume Shadow Co…

Nginx下配置Http Basic Auth

nginx basic auth指令 第一条语句&#xff1a; 语法: auth_basic string | off;默认值: auth_basic off;配置段: http, server, location, limit_except 默认表示不开启认证&#xff0c;后面如果跟上字符&#xff0c;这些字符会在弹窗中显示。 第二条语句&#xff…

服务器多核性能排行,服务器内存多核性能

服务器内存多核性能 内容精选换一换本文介绍了弹性云服务器ECS的功能发布和对应的文档动态&#xff0c;新特性将在各个区域(Region)陆续发布&#xff0c;欢迎体验。关于弹性云服务器(ECS)更多历史版本变更内容&#xff0c;请单击“查看PDF”详细了解。超高I/O型弹性云服务器使用…