3. 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
4. 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
43. Groovy support - <description>: <resource> <description>Time: {{ new Date() }}</description> … </resource> Logs <resource> start, end, and execution time in ms.
44. Groovy support - <replace>: <resource> … <replace> <to>File updated at: {{ new Date() }}</to> <groovy>true</groovy> </replace> </resource>
46. Groovy support - <filter>: <resource> <targetPath>..</targetPath> … <filter>{{ files.findAll{ .. } }}</filter> </resource> Filters files to copy, pack, unpack, etc.
47. Groovy support - <process>: <resource> <targetPath>..</targetPath> … <process>{{ println “Files: $files” }}</process> </resource> Processes files after they are copied, packed, etc.
48. 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” ) }}
50. Creates new Mavenpropertiesatrun time .. .. evaluatingGroovy expressions! Works best in combinationwith <runIf> Allowscreatingdynamic content for the mail plugin
56. Generates Hudson/Jenkins jobs Definesthem in a single POM Jobs canformhierarchicall groups (reuse!) Supports jobs invocation Supports Artifactory deployment
73. <assertFiles> : <assertFiles> ${data-files}/*.xml ${project.build.directory}/setup.tar.gz ${project.build.directory}/ini </assertFiles> Makes sure all files and directories are created.
74. <assertEqual> : <assertEqual> ${dir}/expected|${outputDir}/result ${dir}/expected|${outputDir}/result|**/*.xml </assertEqual> Makes sure directories are identical (+/- pattern).
75. <assertGroovy> : <assertGroovy> project.basedir.directorySize() > 0 timestamp ==~ /^{2} + {4}, {2}:{2}:{2}$/ </assertGroovy> Evaluates «assertline» for each line (power assert!)
76. 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
81. <mails>: <mails> <to>user@mail; user2@mail</to> <cc>User Name <user@mail>;</cc> <bcc>..</bcc> </mails> Use <user@mail> or CDATA Addresses are «;»-separated to allowspaces in names