Friday, June 5, 2009

Maven: Copy dependencies along with artificat(jar) currently built

Following is a sample maven plugin configuration for copying the dependency jars( or artifacts) along with the artifact (jar/war..) that being built currently.

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
           <executions>
               <execution>
                   <id>copy-dependencies</id>
                     <phase>package</phase>
                     <goals>
                      <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/distribute/lib</outputDirectory>
                            <overWriteReleases>true</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-installed</id>
                        <phase>install</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <type>${project.packaging}</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.build.directory}/distribute/lib</outputDirectory>
           </configuration>
       </execution>
   </executions>
</plugin>

The above sample copies all the dependent jars along with new jar that was built during to the "target/distribute/lib" directory.

Note that, copying the dependency happens during the "package" phase. The final jar that was built is being copied during the "install" phase of the build.

No comments:

Post a Comment