SlideShare una empresa de Scribd logo
1 de 88
Maven Plugins EvgenyGoldin
evgeny-goldin.com/wiki/Maven-plugins evgeny-goldin.org/artifactory/plugins-releases evgeny-goldin.org/artifactory/libs-releases <groupId>com.goldin.plugins</groupId> <artifactId>maven-xyz-plugin</artifactId> <version>0.2.2</version>
maven-copy-plugin Copies, packs, unpacks, downloads, uploads ..  .. files, archives, Maven <dependencies> maven-properties-plugin Creates new Maven properties at run-time .. .. evaluating Groovy expressions!  maven-jenkins-plugin Generates Hudson/Jenkins jobs Organizes them hierarchically in a single POM
maven-assert-plugin Verifies files exist, properties defined, etc. Verifies any Groovy expression! maven-mail-plugin Sends e-mails with attachments from Maven Works great for build-time reports maven-spring-batch-plugin Invokes Spring Batch job as part of Maven build
maven-copy-plugin
Copies, packs, unpacks, downloads, uploads ..  .. files, archives, Maven <dependencies> Filters and replaces content Updates archives Unpacks Zip entries Downloads and uploadsfrom/to HTTP, SCP, FTP Built-in Groovy support
<groupId>com.goldin.plugins</groupId> <artifactId>maven-copy-plugin</artifactId> <version>0.2.2</version>
<configuration>: <configuration> <resources>         <resource>..</resource>         <resource>..</resource> </resources> <configuration>
Copy files: <resource> <targetPath>target directory</targetPath> <directory>base directory</directory> <include>**/*.xml, *.txt, **/lib/*.jar</include> <exclude>**/*-template.xml</exclude> </resource>
Copy file: <resource>     <targetPath>target directory</targetPath> <file>file to copy</file> </resource>
Filter files: <resource>     <targetPath>..</targetPath>     <directory>..</directory>     <include>..</include> <filtering>true</filtering> </resource>
Replace content – single <replace>: <resource>     <targetPath>..</targetPath>     <file>..</file> <replace>         <from>regular expression</from>         <to>replacement  content</to>     </replace> </resource>
Replace content - multiple <replaces>: <resource>     <targetPath>..</targetPath>     <file>..</file> <replaces>         <replace>..</replace>         <replace>..</replace>     </replaces> </resource>
<filter> + <replace>: <resource>     <targetPath>..</targetPath>     <file>..</file> <filtering>true</filtering> <replace>..</replaces> </resource>
Copy <dependency>: <resource>     <targetPath>..</targetPath> <dependency>         <groupId>..</groupId>         <artifactId>..</artifactId> </dependency> </resource>
Copy <dependencies>: <resource>     <targetPath>..</targetPath> <dependencies>         <dependency>..</dependency>         <dependency>..</dependency> </dependencies> </resource>
Pack archive: <resource>     <targetPath>path/file.zip</targetPath>     <directory>..</directory>     <include>..</include> <pack>true</pack> </resource>
Formats supported: Zip, jar, war, ear, hpi Tar, tar.gz, tgz Tar.bz2, tzp, tbz2 Ant + TrueZip
Update archive: <resource>     <targetPath>path/file.zip</targetPath>     <directory>..</directory>     <include>..</include>     <pack>true</pack>     <update>true</update> </resource>
Attachartifact: <resource>     <targetPath>path/file.zip</targetPath>     <directory>..</directory>     <include>..</include>     <pack>true</pack>     <attachArtifact>true</attachArtifact> </resource>
Deployartifact: <resource>     <targetPath>path/file.zip</targetPath>     <directory>..</directory>     <include>..</include>     <pack>true</pack> <deploy>repoUrl|groupId|artifactId|version</deploy> </resource>
Unpack archive: <resource>     <targetPath>..</targetPath>     <file>some/file.zip</directory>     <unpack>true</unpack> </resource>
Formats supported: Zip, jar, war, ear, hpi Tar, tar.gz, tgz Tar.bz2, tzp, tbz2 Ant + TrueZip
Unpack archives: <resource>     <targetPath>..</targetPath>     <directory>..</directory>     <include>*.jar, *.zip, *.tar.gz</include>     <unpack>true</unpack> </resource>
Unpack <dependency>: <resource>     <targetPath>..</targetPath> <dependency>         <groupId>..</groupId>         <artifactId>..</artifactId> </dependency>     <unpack>true</unpack> </resource>
Unpack <dependencies>: <resource>     <targetPath>..</targetPath> <dependencies>         <dependency>..</dependency>         <dependency>..</dependency> </dependencies>     <unpack>true</unpack> </resource>
Unpack Zip entry: <resource>     <targetPath>..</targetPath>     <file>path/file.zip</file> <zipEntry>entry/path/file.txt</zipEntry>     <unpack>true</unpack> </resource>
Unpack Zip entries (1): <resource>     <targetPath>..</targetPath>     <file>path/file.zip</file> <zipEntry>entry/**/*.txt</zipEntry>     <unpack>true</unpack> </resource>
Unpack Zip entries (2): <resource>     <zipEntries> <zipEntry>..</zipEntry> <zipEntry>..</zipEntry> </zipEntries>     <unpack>true</unpack> </resource>
Download files – network drive: <resource>     <targetPath>..</targetPath> <directory>networkrive</directory>     <include>..</include>     <exclude>..</exclude> </resource>
Download file – HTTP: <resource>     <targetPath>..</targetPath> <file>http://host/file</file> </resource>
Download file – SCP: <resource>     <targetPath>..</targetPath>     <directory>scp://user:pass@host:/file</directory> </resource>
Download files – FTP: <resource>     <targetPath>..</targetPath>     <directory>ftp://user:pass@host:/path</directory> <include>..</include> <exclude>..</exclude> </resource>
Download files – FTP + wget: <resource>     <targetPath>..</targetPath>     <directory>ftp://user:pass@host:/path</directory> <include>..</include> <wget>wget.exe</wget> </resource>
Download + unpack: <resource>     <targetPath>..</targetPath>     http / scp / ftp <unpack>true</unpack> </resource>
Upload files – network drive: <resource>     <targetPath>networkrive</targetPath>     <directory>..</directory>     <include>..</include> </resource>
Upload files – SCP: <resource>     <targetPath>scp://user:pass@host:/dir</targetPath>     <directory>..</directory>     <include>..</include> </resource>
Upload files – FTP: <resource>     <targetPath>ftp://user:pass@host:/dir</targetPath>     <directory>..</directory>     <include>..</include> </resource>
Delete files: <resource>     <directory>..</directory>     <include>..</include> <clean>true</clean>     <cleanEmptyDirectories>true</cleanEmptyDirectories> </resource>
Create file (= copy other file + <replace>): <resource>     <targetPath>..</targetPath>     <file>${project.basedir}/pom.xml</file> <replace><to>new content</to></replace>     <destFileName>newName.txt</destFileName> </resource>
Create directory: <resource>     <targetPath>..</targetPath> <mkdir>true</mkdir> </resource>
Groovy support - <runIf>: <configuration> <runIf>{{ Groovy Expression }}</runIf>     <resource> <runIf>{{ Groovy Expression }}</runIf>         // Boolean.valueOf( String.valueOf( returnValue ))     </resource> </configuration>
Groovy support - <description>: <resource>     <description>Time: {{ new Date() }}</description>     …     </resource> Logs <resource> start, end, and execution time in ms.
Groovy support - <replace>: <resource>     …     <replace> <to>File updated at: {{ new Date() }}</to>         <groovy>true</groovy>     </replace> </resource>
Groovy support – FTP download + <listFilter>: <resource>     FTP download     <wget>wget.exe</wget> <listFilter>{{ files.keySet().findAll{ .. }  }}</listFilter> </resource> Filters files to download.
Groovy support - <filter>: <resource>     <targetPath>..</targetPath>     … <filter>{{ files.findAll{ .. }  }}</filter> </resource> Filters files to copy, pack, unpack, etc.
Groovy support - <process>: <resource>     <targetPath>..</targetPath>     … <process>{{ println “Files: $files” }}</process> </resource> Processes files after they are copied, packed, etc.
Groovy support - context: “project” - org.apache.maven.project.MavenProject “session” - org.apache.maven.execution.MavenSession “mavenVersion” All Maven and System properties <this-property> => “thisProperty” “os.name”          => “osName” {{ new File( project.basedir, “pom.xml” ) }}
maven-properties-plugin
Creates new Mavenpropertiesatrun time ..  .. evaluatingGroovy expressions! Works best in combinationwith <runIf> Allowscreatingdynamic content for the mail plugin
<groupId>com.goldin.plugins</groupId> <artifactId>maven-properties-plugin</artifactId> <version>0.2.2</version>
<configuration>: <configuration>     <properties> <property>..</property> <property>..</property>     </properties> </configuration>
<property>: <property>     <name>propertyTrue</name> <value>{{ 't' + 'r' + 'u' + 'e' }}</value> </property> … <runIf>{{ propertyTrue }}</runIf> <runIf>{{ ! Boolean.valueOf( propertyTrue ) }}</runIf>
Groovycontext: “project” - org.apache.maven.project.MavenProject “session” - org.apache.maven.execution.MavenSession “mavenVersion” All Maven and System properties <this-property> => “thisProperty” “os.name”          => “osName” {{ project.basedir.canonicalPath }}
maven-jenkins-plugin
Generates Hudson/Jenkins jobs Definesthem in a single POM Jobs canformhierarchicall groups (reuse!) Supports jobs invocation Supports Artifactory deployment
<groupId>com.goldin.plugins</groupId> <artifactId>maven-jenkins-plugin</artifactId> <version>0.2.2</version>
<configuration> : <configuration>     <outputDirectory>.jenkins/jobs</outputDirectory>     <jobs> <job>..</job> <job>..</job>     </jobs> </configuration>
<job> : <job> <id>jobName</id>     <mavenName>apache-maven-2.2.1</mavenName> <mavenOpts>-Xmx256m</mavenOpts>     <mavenGoals>–e –B –U clean install</mavenGoals>     … </job>
<job> : <jdkName> <pom> <repositories> <privateRepository> <mail> … All standard job configuration options.
Extending <job> (1): <job> <id>baseJob</id> <abstract>true</abstract>     <jdkName>..</jdkName>        <mavenName>..</mavenName>     <mavenGoals>..</mavenGoals> </job>
Extending <job> (2): <job>     <id>jobName</id> <parent>baseJob</parent>     <repository>..</repository> </job> Only job-specific values are specified.
Description Table:
Invoking jobs: <job>     <id>jobName</id>… <invoke>         <jobs>jobA, jobB, jobC</jobs>     </invoke> </job>
Invoking jobs - conditions: <invoke>     <jobs>jobA, jobB, jobC</jobs>     <always>false</always> <stable>true</stable> <unstable>false</unstable> <failed>false</failed> </invoke>
Artifactory deployment: <job> <artifactory>         <name>http://host/artifactory</name>         <user>deployer</user>         <scrambledPassword>..</scrambledPassword> </artifactory> </job>
Environments supported: SCM: Subversion, Git, CVS, NullSCM (none) Maven jobs Free-style jobs Plugins required: “Parameterized Trigger Plugin” v2.4 or higher “ArtifactoryPlugin” v1.3.4 or higher
maven-assert-plugin
Build assertions! Propertiesdefined Files exist Directories identical Groovy expressions evaluate to true Wasdriven by plugins tests
<groupId>com.goldin.plugins</groupId> <artifactId>maven-assert-plugin</artifactId> <version>0.2.2</version>
<configuration> : <configuration>     <assertProperties>..</assertProperties>     <assertFiles>..</assertFiles>     <assertEqual>..</assertEqual>     <assertGroovy>..</assertGroovy> </configuration>
<assertProperties> : <assertProperties>     job-parameter     BUILD_NUMBER     JENKINS_URL </assertProperties> Makes sure all job parameters are specified.
<assertFiles> : <assertFiles>     ${data-files}/*.xml     ${project.build.directory}/setup.tar.gz     ${project.build.directory}/ini </assertFiles> Makes sure all files and directories are created.
<assertEqual> : <assertEqual>      ${dir}/expected|${outputDir}/result     ${dir}/expected|${outputDir}/result|**/*.xml </assertEqual> Makes sure directories are identical (+/- pattern).
<assertGroovy> : <assertGroovy>  project.basedir.directorySize() > 0     timestamp ==~ /^{2} + {4}, {2}:{2}:{2}$/ </assertGroovy> Evaluates «assertline» for each line (power assert!)
Groovycontext: File.directorySize() Object.splitWith() – see GCommons “project” - org.apache.maven.project.MavenProject “session” - org.apache.maven.execution.MavenSession “mavenVersion” All Maven and System properties
maven-mail-plugin
Sends e-mails with attachments from Maven Works great for build-time reports Properties plugin allows for dynamic content
<groupId>com.goldin.plugins</groupId> <artifactId>maven-mail-plugin</artifactId> <version>0.2.2</version>
<configuration>: <configuration> <smtp>..</smtp>     <from>..</from>     <mails><to>..</to></mails>     <subject>..</subject>     <text>..</text> </configuration>
<mails>: <mails> <to>user@mail; user2@mail</to> <cc>User Name &lt;user@mail&gt;;</cc> <bcc>..</bcc> </mails> Use &lt;user@mail&gt; or CDATA Addresses are «;»-separated to allowspaces in names
Attaching files: <configuration> <textFile>..</textFile> <files>         <file>..</file>         <file>..</file> </files> </configuration>
maven-spring-batch-plugin
Invokes SpringBatch job as part of Maven build Maven is a good platform for batch processes!
<groupId>com.goldin.plugins</groupId> <artifactId>maven-spring-batch-plugin</artifactId> <version>0.2.2</version>
<configuration>: <configuration> <jobId>jobId</jobId>     <configLocations> classpath:/springbatch/infra/job-launcher.xml file:/job/context.xml     </configLocations> </configuration>
Properties: <configuration> <props>         name = value classpath:/springbatch/infra/job-runner.properties file:/job/context.properties </props> </configuration>
evgeny-goldin.com/wiki/Maven-plugins maven-plugins.994461.n3.nabble.com evgeny-goldin.org/artifactory/plugins-releases evgeny-goldin.org/artifactory/libs-releases evgeny-goldin.org/youtrack/issues/pl @evgeny_goldin evgenyg@gmail.com

Más contenido relacionado

La actualidad más candente

CITEC #CON2-Dirty Attack with Google Hacking
CITEC #CON2-Dirty Attack with Google HackingCITEC #CON2-Dirty Attack with Google Hacking
CITEC #CON2-Dirty Attack with Google HackingPrathan Phongthiproek
 
There's Nothing so Permanent as Temporary
There's Nothing so Permanent as TemporaryThere's Nothing so Permanent as Temporary
There's Nothing so Permanent as TemporaryPositive Hack Days
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry DogRoss Tuck
 
5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscotMichael Ewins
 
Application Logging With The ELK Stack
Application Logging With The ELK StackApplication Logging With The ELK Stack
Application Logging With The ELK Stackbenwaine
 
Making sense of users' Web activities
Making sense of users' Web activitiesMaking sense of users' Web activities
Making sense of users' Web activitiesMathieu d'Aquin
 
How to optimise TTFB - BrightonSEO 2020
How to optimise TTFB - BrightonSEO 2020How to optimise TTFB - BrightonSEO 2020
How to optimise TTFB - BrightonSEO 2020Roxana Stingu
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneAdrian Cole
 
How to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing FestivalHow to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing FestivalFilip Podstavec
 
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios
 
CouchDB Day NYC 2017: Introduction to CouchDB 2.0
CouchDB Day NYC 2017: Introduction to CouchDB 2.0CouchDB Day NYC 2017: Introduction to CouchDB 2.0
CouchDB Day NYC 2017: Introduction to CouchDB 2.0IBM Cloud Data Services
 
Bea con anatomy-of-web-attack
Bea con anatomy-of-web-attackBea con anatomy-of-web-attack
Bea con anatomy-of-web-attackPatrick Laverty
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as codeJulian Simpson
 
Application Logging With Logstash
Application Logging With LogstashApplication Logging With Logstash
Application Logging With Logstashbenwaine
 

La actualidad más candente (20)

CITEC #CON2-Dirty Attack with Google Hacking
CITEC #CON2-Dirty Attack with Google HackingCITEC #CON2-Dirty Attack with Google Hacking
CITEC #CON2-Dirty Attack with Google Hacking
 
There's Nothing so Permanent as Temporary
There's Nothing so Permanent as TemporaryThere's Nothing so Permanent as Temporary
There's Nothing so Permanent as Temporary
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry Dog
 
5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot5 steps to faster web sites & HTML5 games - updated for DDDscot
5 steps to faster web sites & HTML5 games - updated for DDDscot
 
Linux intermediate level
Linux intermediate levelLinux intermediate level
Linux intermediate level
 
Webscraping with asyncio
Webscraping with asyncioWebscraping with asyncio
Webscraping with asyncio
 
Application Logging With The ELK Stack
Application Logging With The ELK StackApplication Logging With The ELK Stack
Application Logging With The ELK Stack
 
CouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: ReplicationCouchDB Day NYC 2017: Replication
CouchDB Day NYC 2017: Replication
 
Making sense of users' Web activities
Making sense of users' Web activitiesMaking sense of users' Web activities
Making sense of users' Web activities
 
How to optimise TTFB - BrightonSEO 2020
How to optimise TTFB - BrightonSEO 2020How to optimise TTFB - BrightonSEO 2020
How to optimise TTFB - BrightonSEO 2020
 
I got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't oneI got 99 problems, but ReST ain't one
I got 99 problems, but ReST ain't one
 
How to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing FestivalHow to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing Festival
 
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in PerlNagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
Nagios Conference 2012 - Nathan Vonnahme - Writing Custom Nagios Plugins in Perl
 
FP in JS-Land
FP in JS-LandFP in JS-Land
FP in JS-Land
 
CouchDB Day NYC 2017: Introduction to CouchDB 2.0
CouchDB Day NYC 2017: Introduction to CouchDB 2.0CouchDB Day NYC 2017: Introduction to CouchDB 2.0
CouchDB Day NYC 2017: Introduction to CouchDB 2.0
 
CouchDB Day NYC 2017: MapReduce Views
CouchDB Day NYC 2017: MapReduce ViewsCouchDB Day NYC 2017: MapReduce Views
CouchDB Day NYC 2017: MapReduce Views
 
Bea con anatomy-of-web-attack
Bea con anatomy-of-web-attackBea con anatomy-of-web-attack
Bea con anatomy-of-web-attack
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as code
 
Application Logging With Logstash
Application Logging With LogstashApplication Logging With Logstash
Application Logging With Logstash
 
H
HH
H
 

Destacado

Redvolucion historias inspiradoras jennifer
Redvolucion historias inspiradoras jennifer Redvolucion historias inspiradoras jennifer
Redvolucion historias inspiradoras jennifer Sire Olivo
 
Visual Storytelling Part 1: PLOT Your Presentation
Visual Storytelling Part 1: PLOT Your PresentationVisual Storytelling Part 1: PLOT Your Presentation
Visual Storytelling Part 1: PLOT Your PresentationIvan Ruiz
 
Panda lacotion
Panda lacotionPanda lacotion
Panda lacotiongeleya
 
Internal Social and Collaboration presented at 18F
Internal Social and Collaboration presented at 18FInternal Social and Collaboration presented at 18F
Internal Social and Collaboration presented at 18FThomas Vander Wal
 
Изучение планет Солнечной системы
Изучение планет Солнечной системыИзучение планет Солнечной системы
Изучение планет Солнечной системыredy
 
Open Budget Data: A Landscape Analysis
Open Budget Data: A Landscape AnalysisOpen Budget Data: A Landscape Analysis
Open Budget Data: A Landscape AnalysisJonathan Gray
 
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Guilherme Ponce
 
Acceso electrónico a los servicios públicos.
Acceso electrónico a los servicios públicos.Acceso electrónico a los servicios públicos.
Acceso electrónico a los servicios públicos.José María
 
Brief overview of New Curriculum for IL
Brief overview of New Curriculum for ILBrief overview of New Curriculum for IL
Brief overview of New Curriculum for ILJane Secker
 
Tableau - ANAND CHOKHI DEMO - Filled Map Chart
Tableau - ANAND CHOKHI DEMO - Filled Map ChartTableau - ANAND CHOKHI DEMO - Filled Map Chart
Tableau - ANAND CHOKHI DEMO - Filled Map ChartAnand Chokshi
 
Marketing with Digital Tools
Marketing with Digital ToolsMarketing with Digital Tools
Marketing with Digital Toolscoursestorm
 

Destacado (16)

Release It!
Release It!Release It!
Release It!
 
Redvolucion historias inspiradoras jennifer
Redvolucion historias inspiradoras jennifer Redvolucion historias inspiradoras jennifer
Redvolucion historias inspiradoras jennifer
 
Daily Newsletter: 19th July, 2011
Daily Newsletter: 19th July, 2011Daily Newsletter: 19th July, 2011
Daily Newsletter: 19th July, 2011
 
Visual Storytelling Part 1: PLOT Your Presentation
Visual Storytelling Part 1: PLOT Your PresentationVisual Storytelling Part 1: PLOT Your Presentation
Visual Storytelling Part 1: PLOT Your Presentation
 
Panda lacotion
Panda lacotionPanda lacotion
Panda lacotion
 
Ref
RefRef
Ref
 
Patrones de medición
Patrones de mediciónPatrones de medición
Patrones de medición
 
Internal Social and Collaboration presented at 18F
Internal Social and Collaboration presented at 18FInternal Social and Collaboration presented at 18F
Internal Social and Collaboration presented at 18F
 
Изучение планет Солнечной системы
Изучение планет Солнечной системыИзучение планет Солнечной системы
Изучение планет Солнечной системы
 
Open Budget Data: A Landscape Analysis
Open Budget Data: A Landscape AnalysisOpen Budget Data: A Landscape Analysis
Open Budget Data: A Landscape Analysis
 
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
 
Acceso electrónico a los servicios públicos.
Acceso electrónico a los servicios públicos.Acceso electrónico a los servicios públicos.
Acceso electrónico a los servicios públicos.
 
Brief overview of New Curriculum for IL
Brief overview of New Curriculum for ILBrief overview of New Curriculum for IL
Brief overview of New Curriculum for IL
 
Tableau - ANAND CHOKHI DEMO - Filled Map Chart
Tableau - ANAND CHOKHI DEMO - Filled Map ChartTableau - ANAND CHOKHI DEMO - Filled Map Chart
Tableau - ANAND CHOKHI DEMO - Filled Map Chart
 
scan
scanscan
scan
 
Marketing with Digital Tools
Marketing with Digital ToolsMarketing with Digital Tools
Marketing with Digital Tools
 

Similar a Maven Plugins

Dexterity in 15 minutes or less
Dexterity in 15 minutes or lessDexterity in 15 minutes or less
Dexterity in 15 minutes or lessrijk.stofberg
 
Maven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherMaven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherCarlos Sanchez
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternselliando dias
 
Running PHP on a Java container
Running PHP on a Java containerRunning PHP on a Java container
Running PHP on a Java containernetinhoteixeira
 
Using Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsUsing Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsRajesh Kumar
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Michiel Rook
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile DescriptionsTony Hammond
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To AntRajesh Kumar
 
Slides Aquarium Paris 2008
Slides Aquarium Paris 2008Slides Aquarium Paris 2008
Slides Aquarium Paris 2008julien.ponge
 
Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007Robert Treat
 

Similar a Maven Plugins (20)

Dexterity in 15 minutes or less
Dexterity in 15 minutes or lessDexterity in 15 minutes or less
Dexterity in 15 minutes or less
 
Maven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherMaven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working Together
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
 
Git::Hooks
Git::HooksGit::Hooks
Git::Hooks
 
Deploy Flex with Apache Ant
Deploy Flex with Apache AntDeploy Flex with Apache Ant
Deploy Flex with Apache Ant
 
Sword v2 at UKCoRR
Sword v2 at UKCoRRSword v2 at UKCoRR
Sword v2 at UKCoRR
 
Running PHP on a Java container
Running PHP on a Java containerRunning PHP on a Java container
Running PHP on a Java container
 
Ant User Guide
Ant User GuideAnt User Guide
Ant User Guide
 
Maven
MavenMaven
Maven
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Using Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee ApplicationsUsing Ant To Build J2 Ee Applications
Using Ant To Build J2 Ee Applications
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To Ant
 
Slides Aquarium Paris 2008
Slides Aquarium Paris 2008Slides Aquarium Paris 2008
Slides Aquarium Paris 2008
 
Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007Intro to pl/PHP Oscon2007
Intro to pl/PHP Oscon2007
 
Xml Zoe
Xml ZoeXml Zoe
Xml Zoe
 
Xml Zoe
Xml ZoeXml Zoe
Xml Zoe
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Apache Ant
Apache AntApache Ant
Apache Ant
 

Más de Evgeny Goldin

Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayEvgeny Goldin
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkinsEvgeny Goldin
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in GroovyEvgeny Goldin
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions AnatomyEvgeny Goldin
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about GradleEvgeny Goldin
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing GroovyEvgeny Goldin
 

Más de Evgeny Goldin (8)

Alexa skills
Alexa skillsAlexa skills
Alexa skills
 
Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and Play
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkins
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in Groovy
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions Anatomy
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about Gradle
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing Groovy
 
Groovy Maven Builds
Groovy Maven BuildsGroovy Maven Builds
Groovy Maven Builds
 

Último

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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Último (20)

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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Maven Plugins