2012-06-27 11 views
10

Esiste un repository di maven pubblicamente disponibile che ospita gli ZIP di distribuzione binaria Apache Tomcat come artefatti maven (intendo il file che può essere scaricato tramite http://tomcat.apache.org, ad esempio http://mirror.serversupportforum.de/apache/tomcat/tomcat-7/v7.0.28/bin/apache-tomcat-7.0.28.zip)?Tomcat distribuzione binaria zip come artefatto maven

Attualmente scarico manualmente queste zip di distribuzione e le inserisco nel mio repository Nexus, ma lo troverei più elegante se ci fosse un tale repository che potrei aggiungere alle mie POM. Qualcun altro ha bisogno della distribuzione ZIP di Tomcat all'interno della sua build di esperti, come affrontare questo problema?

risposta

4

No, non esiste un tale repository o artefatto.

Ci stavo lavorando un po 'di tempo fa perché abbiamo un Tomcat standard che pre-configuriamo e spediamo insieme al nostro prodotto.

Abbiamo finito per scaricare il file zip Tomcat dal sito ufficiale (tramite Maven) e quindi applicare le modifiche richieste e quindi inviarle al nostro Nexus.

Ecco, più o meno come lo facciamo:

<?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> 
+0

Beh, questo è esattamente quello che facciamo anche noi. Quello che mi piacerebbe di più è solo cambiare la versione della dipendenza da tomcat (ad es. Quando è stato pubblicato un nuovo rilascio), e Maven lo recupera automaticamente. – coldrock

+1

Dai un'occhiata alla mia risposta aggiornata. – carlspring

+0

Ok, è quasi nello stesso modo in cui lo facciamo. Ma invece di commettere il tomcat.zip originale nel sistema di controllo della versione, lo teniamo nel nostro nesso. Quando voglio utilizzare una nuova versione di tomcat, la scarico e la carica manualmente nel nostro Nexus, quindi posso riferirmi come una vera dipendenza dalla build di maven. – coldrock

2

L'unica posizione che so per certo è:

http://archive.apache.org/dist/tomcat/

che può essere utilizzato tramite Maven download ...

+0

Ma questo non è un repository di maven, nessun pom ecc. Non penso che si possa aggiungere questo a Nexus come repo proxy. – coldrock

+0

Sì, non è un repository. Ma puoi usare il plugin wagon per scaricarlo durante una build di Maven. – khmarbaise

28

Le distribuzioni di Tomcat 7.0.35 e successive sono in Maven Central sotto org.apache.tomcat:tomcat con tipo zip o tar.gz.

+6

La risposta accettata è ormai superata e questa è quella valida. – diegomtassis

Problemi correlati