SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
СИСТЕМЫ СБОРКИ
    Краткий обзор
ЧТО МОЖНО СОБРАТЬ?
     Зачем что-то собирать?
MAKE


• 100500   реализаций на различных языках

• Основной   файл: Makefile

• 46742   repo@github
MAKE

variable = value

target: componentA componentB
    commandA
    commandB

targetB: componentC componentD
    commandA
    commandB
MAKE

BACKUP_DAY = `date "+%Y.%m%d%"`

release: clean backup

backup:
  tar -czvf /backup/$(BACKUP_DAY).tar.gz build

clean:
  rm -f tmp/*
ANT


• Напиан   на Java

• Независит   от платформы

• Основной    файл: build.xml

• 6346   repo@github
ANT
<?xml version="1.0"?>
<project default="release">
  <target name="release" depends="backup,clean" />
  <target name="backup" description="Clean all">
    <exec executable="tar">
      <arg value="-czvf" />
      <arg value="/backup/${current.day}.tar.gz" />
    </exec>
  </target>
  <target name="clean" description="Clean all">
    <delete dir="tmp" />
  </target>
</project>
MAVEN

• Написан     на Java

• Основной       файл: pom.xml

• 7161   @github.com

• Maven
      - это просто *SARCASM*
 maven@5.minute
 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app 
 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
MAVEN
<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.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
	   <modelVersion>4.0.0</modelVersion>
	   <groupId>my.app</groupId>
	   <artifactId>my-app-name</artifactId>
	   <version>0.0.1-SNAPSHOT</version>
	   <packaging>jar</packaging>
	   <name>my-app-name</name>
	   <url>https://github.com/mylogin/myapp</url>
</project>
MAVEN
<build>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>
</build>
MAVEN
<project xmlns="http://maven.apache.org/POM/4.0.0"                    <developerConnection>scm:git:ssh://git@github.com/arey/         <downloadUrl>https://github.com/arey/maven-config-github-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             maven-config-github-cloudbees.git</developerConnection>         cloudbee</downloadUrl>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://       </scm>                                                            <repository>
maven.apache.org/maven-v4_0_0.xsd">                                                                                                     <id>javaetmoi-cloudbees-release</id>
  <modelVersion>4.0.0</modelVersion>                                <build>                                                             <name>javaetmoi-cloudbees-release</name>
  <groupId>com.javaetmoi.maven</groupId>                              <extensions>                                                      <!-- Webdav repository url are prefixed with dav: -->
  <version>1.1-SNAPSHOT</version>                                       <!-- Extension required to deploy a snapshot or a               <url>dav:https://repository-



                                                                   ЕЩЁ XML!
  <artifactId>maven-config-github-cloudbees</artifactId>          release to the CloudBees remote maven repository using Webdav   javaetmoi.forge.cloudbees.com/release/</url>
  <name>JavaEtMoi Maven :: ${project.artifactId} - $              -->                                                                 </repository>
{project.packaging}</name>                                              <extension>                                                   <snapshotRepository>
  <packaging>pom</packaging>                                              <groupId>org.apache.maven.wagon</groupId>                     <id>javaetmoi-cloudbees-snapshot</id>
  <description>Maven configuration example pom.xml file for               <artifactId>wagon-webdav</artifactId>                         <name>javaetmoi-cloudbees-snapshot</name>
working with GitHub and the CloudBees maven repository</                  <version>1.0-beta-2</version>                                 <url>dav:https://repository-
description>                                                            </extension>                                              javaetmoi.forge.cloudbees.com/snapshot/</url>
  <inceptionYear>2012</inceptionYear>                                 </extensions>                                                   </snapshotRepository>
  <url>https://github.com/arey/maven-config-github-cloudbees</                                                                      </distributionManagement>
url>                                                                  <plugins>
                                                                        <!-- Plugin used to process release using the command       <repositories>



                                                                 БОЛЬШЕ XML!
  <developers>                                                    line: mvn release:prepare release:perform -->                       <!-- Cloudbees maven repositories for releases and
    <developer>                                                         <plugin>                                                  snapshots -->
      <id>arey</id>                                                       <groupId>org.apache.maven.plugins</groupId>                 <repository>
      <name>Antoine Rey</name>                                            <artifactId>maven-release-plugin</artifactId>                 <id>javaetmoi-cloudbees-release</id>
      <email>antoine@javaetmoi.com</email>                                <version>2.2.2</version>                                      <name>javaetmoi-cloudbees-release</name>
      <url>http://javaetmoi.com</url>                                   </plugin>                                                       <url>https://repository-javaetmoi.forge.cloudbees.com/
      <timezone>+1</timezone>                                                                                                     release/</url>
      <roles>                                                           <plugin>                                                        <releases>
        <role>Java Developer</role>                                       <groupId>org.apache.maven.plugins</groupId>                     <enabled>true</enabled>
      </roles>                                                            <artifactId>maven-source-plugin</artifactId>                  </releases>
    </developer>                                                          <version>2.1.2</version>                                      <snapshots>
  </developers>                                                           <configuration>                                                 <enabled>false</enabled>
                                                                            <encoding>UTF-8</encoding>                                  </snapshots>
  <!-- Continuous Integration build hosted by CloudBees -->               </configuration>                                            </repository>
  <ciManagement>                                                        </plugin>                                                     <repository>
    <system>jenkins</system>                                            <plugin>                                                        <id>javaetmoi-cloudbees-snapshot</id>
    <url>https://javaetmoi.ci.cloudbees.com/job/Maven-                    <groupId>org.apache.maven.plugins</groupId>                   <name>javaetmoi-cloudbees-snapshot</name>
Configuration-for-GitHub/</url>                                           <artifactId>maven-javadoc-plugin</artifactId>                 <url>https://repository-javaetmoi.forge.cloudbees.com/
  </ciManagement>                                                         <version>2.7</version>                                  snapshot/</url>
  <issueManagement>                                                     </plugin>                                                       <releases>
    <system>github</system>                                             <plugin>                                                          <enabled>false</enabled>
    <url>https://github.com/arey/maven-config-github-                     <groupId>org.apache.maven.plugins</groupId>                   </releases>
cloudbees/issues</url>                                                    <artifactId>maven-deploy-plugin</artifactId>                  <snapshots>
  </issueManagement>                                                      <version>2.7</version>                                          <enabled>true</enabled>
                                                                        </plugin>                                                       </snapshots>
                                                                      </plugins>                                                      </repository>
  <!-- GitHub Software Configuration Management -->                 </build>                                                        </repositories>
  <scm>
    <url>https://github.com/arey/maven-config-github-               <!-- Deploy releases and snapshots to the CloudBees maven
cloudbees</url>                                                   repositories -->                                                </project>
    <connection>scm:git:ssh://git@github.com/arey/maven-            <distributionManagement>
config-github-cloudbees.git</connection>                                                                                          7
ANT + IVY


• Теперь   ant почти как maven!

• Основной    файл: ivy.xml

• добавляет   секцию dependencies
GRADLE

• Написан   на Java

• Основной    файл: build.gradle

• Сборка   описывается на Groovy (Java с DSL)

• Умеет   исполнять рецепты ant и ivy/maven

• 432   repo@github :)
GRADLE

task release(dependsOn: [‘clean’,’backup’])

task backup << {
  def cmd="tar -czvf /backup/backup.tar.gz build"
  cmd.execute()
}

task clean << {
  def dir = new File("tmp")
  dir.deleteDir()
}
ЧТО ЕЩЁ


• SCons    (Python), 229 repo@github

• Phing   (Ant на php)

• _Первая    буква вашего любимого языка_ ake

• IncrediBuild   for Visual Studio
THE END

Contenu connexe

Tendances

Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Max Andersen
 
How to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioHow to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioMax Andersen
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
JavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンJavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンharuki ueno
 
Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOFMax Andersen
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Vue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue routerVue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue routerKaty Slemon
 
Web deploy command line
Web deploy command lineWeb deploy command line
Web deploy command lineLarry Nung
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
OSGi framework overview
OSGi framework overviewOSGi framework overview
OSGi framework overviewBalduran Chang
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress PluginBrad Williams
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The FactLuciano Resende
 
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos SanchezMaven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos Sanchezmfrancis
 
Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回haruki ueno
 

Tendances (20)

Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
 
Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?
 
How to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioHow to be effective with JBoss Developer Studio
How to be effective with JBoss Developer Studio
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
JavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンJavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオン
 
Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOF
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Web deploy
Web deployWeb deploy
Web deploy
 
Vue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue routerVue routing tutorial getting started with vue router
Vue routing tutorial getting started with vue router
 
Web deploy command line
Web deploy command lineWeb deploy command line
Web deploy command line
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
OSGi framework overview
OSGi framework overviewOSGi framework overview
OSGi framework overview
 
Liferay maven sdk
Liferay maven sdkLiferay maven sdk
Liferay maven sdk
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress Plugin
 
Tuscany : Applying OSGi After The Fact
Tuscany : Applying  OSGi After The FactTuscany : Applying  OSGi After The Fact
Tuscany : Applying OSGi After The Fact
 
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos SanchezMaven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
 
Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回
 

Similaire à Build system

Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xmlakmini
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsrfelden
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!cyrilpicat
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsRaghavan Mohan
 
Introduction To Maven2
Introduction To Maven2Introduction To Maven2
Introduction To Maven2Shuji Watanabe
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in MuleShahid Shaik
 
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...Alex Soto
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with MavenArcadian Learning
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
Liquibase via maven
Liquibase via mavenLiquibase via maven
Liquibase via mavenMaki Turki
 
Spring Boot and JHipster
Spring Boot and JHipsterSpring Boot and JHipster
Spring Boot and JHipsterEueung Mulyana
 
Automation Frame works Instruction Sheet
Automation Frame works Instruction SheetAutomation Frame works Instruction Sheet
Automation Frame works Instruction SheetvodQA
 
Getting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydbGetting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydbGirish Bapat
 

Similaire à Build system (20)

Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xml
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!
 
Maven advanced
Maven advancedMaven advanced
Maven advanced
 
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
 
Pom
PomPom
Pom
 
Introduction To Maven2
Introduction To Maven2Introduction To Maven2
Introduction To Maven2
 
Maven
MavenMaven
Maven
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
 
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...
Develop and Deploy your JavaEE micro service in less than 5 minutes with Apac...
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with Maven
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Liquibase via maven
Liquibase via mavenLiquibase via maven
Liquibase via maven
 
Maven
MavenMaven
Maven
 
Spring Boot and JHipster
Spring Boot and JHipsterSpring Boot and JHipster
Spring Boot and JHipster
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Automation Frame works Instruction Sheet
Automation Frame works Instruction SheetAutomation Frame works Instruction Sheet
Automation Frame works Instruction Sheet
 
Getting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydbGetting started with agile database migrations for java flywaydb
Getting started with agile database migrations for java flywaydb
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Build system

  • 1. СИСТЕМЫ СБОРКИ Краткий обзор
  • 2. ЧТО МОЖНО СОБРАТЬ? Зачем что-то собирать?
  • 3. MAKE • 100500 реализаций на различных языках • Основной файл: Makefile • 46742 repo@github
  • 4. MAKE variable = value target: componentA componentB commandA commandB targetB: componentC componentD commandA commandB
  • 5. MAKE BACKUP_DAY = `date "+%Y.%m%d%"` release: clean backup backup: tar -czvf /backup/$(BACKUP_DAY).tar.gz build clean: rm -f tmp/*
  • 6. ANT • Напиан на Java • Независит от платформы • Основной файл: build.xml • 6346 repo@github
  • 7. ANT <?xml version="1.0"?> <project default="release"> <target name="release" depends="backup,clean" /> <target name="backup" description="Clean all"> <exec executable="tar"> <arg value="-czvf" /> <arg value="/backup/${current.day}.tar.gz" /> </exec> </target> <target name="clean" description="Clean all"> <delete dir="tmp" /> </target> </project>
  • 8. MAVEN • Написан на Java • Основной файл: pom.xml • 7161 @github.com • Maven - это просто *SARCASM* maven@5.minute mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • 9. MAVEN <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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my.app</groupId> <artifactId>my-app-name</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>my-app-name</name> <url>https://github.com/mylogin/myapp</url> </project>
  • 10. MAVEN <build> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </build>
  • 11. MAVEN <project xmlns="http://maven.apache.org/POM/4.0.0"     <developerConnection>scm:git:ssh://git@github.com/arey/     <downloadUrl>https://github.com/arey/maven-config-github- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" maven-config-github-cloudbees.git</developerConnection> cloudbee</downloadUrl> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://   </scm>     <repository> maven.apache.org/maven-v4_0_0.xsd">       <id>javaetmoi-cloudbees-release</id>   <modelVersion>4.0.0</modelVersion>   <build>       <name>javaetmoi-cloudbees-release</name>   <groupId>com.javaetmoi.maven</groupId>     <extensions>       <!-- Webdav repository url are prefixed with dav: -->   <version>1.1-SNAPSHOT</version>       <!-- Extension required to deploy a snapshot or a       <url>dav:https://repository- ЕЩЁ XML!   <artifactId>maven-config-github-cloudbees</artifactId> release to the CloudBees remote maven repository using Webdav javaetmoi.forge.cloudbees.com/release/</url>   <name>JavaEtMoi Maven :: ${project.artifactId} - $ -->     </repository> {project.packaging}</name>       <extension>     <snapshotRepository>   <packaging>pom</packaging>         <groupId>org.apache.maven.wagon</groupId>       <id>javaetmoi-cloudbees-snapshot</id>   <description>Maven configuration example pom.xml file for         <artifactId>wagon-webdav</artifactId>       <name>javaetmoi-cloudbees-snapshot</name> working with GitHub and the CloudBees maven repository</         <version>1.0-beta-2</version>       <url>dav:https://repository- description>       </extension> javaetmoi.forge.cloudbees.com/snapshot/</url>   <inceptionYear>2012</inceptionYear>     </extensions>     </snapshotRepository>   <url>https://github.com/arey/maven-config-github-cloudbees</   </distributionManagement> url>     <plugins>       <!-- Plugin used to process release using the command   <repositories> БОЛЬШЕ XML!   <developers> line: mvn release:prepare release:perform -->     <!-- Cloudbees maven repositories for releases and     <developer>       <plugin> snapshots -->       <id>arey</id>         <groupId>org.apache.maven.plugins</groupId>     <repository>       <name>Antoine Rey</name>         <artifactId>maven-release-plugin</artifactId>       <id>javaetmoi-cloudbees-release</id>       <email>antoine@javaetmoi.com</email>         <version>2.2.2</version>       <name>javaetmoi-cloudbees-release</name>       <url>http://javaetmoi.com</url>       </plugin>       <url>https://repository-javaetmoi.forge.cloudbees.com/       <timezone>+1</timezone> release/</url>       <roles>       <plugin>       <releases>         <role>Java Developer</role>         <groupId>org.apache.maven.plugins</groupId>         <enabled>true</enabled>       </roles>         <artifactId>maven-source-plugin</artifactId>       </releases>     </developer>         <version>2.1.2</version>       <snapshots>   </developers>         <configuration>         <enabled>false</enabled>           <encoding>UTF-8</encoding>       </snapshots>   <!-- Continuous Integration build hosted by CloudBees -->         </configuration>     </repository>   <ciManagement>       </plugin>     <repository>     <system>jenkins</system>       <plugin>       <id>javaetmoi-cloudbees-snapshot</id>     <url>https://javaetmoi.ci.cloudbees.com/job/Maven-         <groupId>org.apache.maven.plugins</groupId>       <name>javaetmoi-cloudbees-snapshot</name> Configuration-for-GitHub/</url>         <artifactId>maven-javadoc-plugin</artifactId>       <url>https://repository-javaetmoi.forge.cloudbees.com/   </ciManagement>         <version>2.7</version> snapshot/</url>   <issueManagement>       </plugin>       <releases>     <system>github</system>       <plugin>         <enabled>false</enabled>     <url>https://github.com/arey/maven-config-github-         <groupId>org.apache.maven.plugins</groupId>       </releases> cloudbees/issues</url>         <artifactId>maven-deploy-plugin</artifactId>       <snapshots>   </issueManagement>         <version>2.7</version>         <enabled>true</enabled>       </plugin>       </snapshots>     </plugins>     </repository>   <!-- GitHub Software Configuration Management -->   </build>   </repositories>   <scm>     <url>https://github.com/arey/maven-config-github-   <!-- Deploy releases and snapshots to the CloudBees maven cloudbees</url> repositories --> </project>     <connection>scm:git:ssh://git@github.com/arey/maven-   <distributionManagement> config-github-cloudbees.git</connection> 7
  • 12. ANT + IVY • Теперь ant почти как maven! • Основной файл: ivy.xml • добавляет секцию dependencies
  • 13. GRADLE • Написан на Java • Основной файл: build.gradle • Сборка описывается на Groovy (Java с DSL) • Умеет исполнять рецепты ant и ivy/maven • 432 repo@github :)
  • 14. GRADLE task release(dependsOn: [‘clean’,’backup’]) task backup << { def cmd="tar -czvf /backup/backup.tar.gz build" cmd.execute() } task clean << { def dir = new File("tmp") dir.deleteDir() }
  • 15. ЧТО ЕЩЁ • SCons (Python), 229 repo@github • Phing (Ant на php) • _Первая буква вашего любимого языка_ ake • IncrediBuild for Visual Studio