Tomcat binary distribution zip as maven artifact
maven, tomcat
Solution
No, there isn't such a repository or artifact.
I was looking into this a while ago because we have a standard Tomcat which we pre-configure and ship along with our product.
We ended up downloading the Tomcat zip from the official site (via Maven) and then applying the required changes and then pushing them over to our Nexus.
Here's more or less how we do it:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat</artifactId>
<version>7.0.28-ourbranding-1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Pre-Configured Tomcat</name>
<properties>
<version.tomcat>7.0.28</version.tomcat>
<tomcat.archive.file>${project.build.directory}/apache-tomcat-${version.tomcat}.zip</tomcat.archive.file>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>repackage-tomcat</id>
<phase>process-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo message="Re-packaging ${tomcat.archive.file}..." />
<unzip src="${basedir}/src/main/lib/apache-tomcat-${version.tomcat}.zip" dest="${project.build.directory}" />
<move file="${project.build.directory}/apache-tomcat-${version.tomcat}" tofile="${project.build.directory}/tomcat" />
<!-- Remove the default webapps -->
<delete dir="${project.build.directory}/tomcat/webapps/docs" />
<delete dir="${project.build.directory}/tomcat/webapps/manager" />
<delete dir="${project.build.directory}/tomcat/webapps/host-manager" />
<delete dir="${project.build.directory}/tomcat/webapps/examples" />
<!-- Patch the bin/catalina* scripts to include some of our jars in the classpath -->
<!-- ... Some more magic goes on here ... -->
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${tomcat.archive.file}</file>
<type>zip</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Problem
Is there a publicly available maven repository that hosts the Apache Tomcat binary distribution ZIPs as maven artifacts (I mean the file that can be downloaded via http://tomcat.apache.org, e.g. http://mirror.serversupportforum.de/apache/tomcat/tomcat-7/v7.0.28/bin/apache-tomcat-7.0.28.zip)? Currently I download these distribution zips manually and put them into my Nexus repo, but I'd find it more elegant if there was such a repo that I just could add to my POMs. Does anybody else need the Tomcat distribution ZIPs within their maven build, how do you cope with this issue?