SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
#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
 
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
 
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
 
🐬 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
 
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
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
#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
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

Maven Plugins