SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 

Recently uploaded (20)

Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 

Maven Plugins