2012-06-27 14 views
10

Czy istnieje publicznie dostępne repozytorium maven, które obsługuje pliki ZIP dystrybucji Apache Tomcat jako artefakty maven (mam na myśli plik, który można pobrać przez http://tomcat.apache.org, np. http://mirror.serversupportforum.de/apache/tomcat/tomcat-7/v7.0.28/bin/apache-tomcat-7.0.28.zip)?Dystrybucja binarna Tomcat jako artefakt maven

Obecnie ręcznie rozprowadzam te zamki dystrybucyjne i umieszczam je w repozytorium Nexusa, ale uważam, że byłoby bardziej elegancko, gdyby istniało takie powtórzenie, które mógłbym dodać do POM. Czy ktokolwiek inny potrzebuje archiwów dystrybucyjnych Tomcat w swojej głównej wersji, jak sobie z tym poradzić?

Odpowiedz

4

Nie, nie ma takiego repozytorium lub artefaktu.

Zajmowałem się tym już jakiś czas temu, ponieważ mamy standardowego Tomcat, który wstępnie konfigurujemy i wysyłamy wraz z naszym produktem.

Skończyło się na tym, że ściągnęliśmy zeskoczek Tomcat z oficjalnej strony (przez Mavena), a następnie wprowadziliśmy wymagane zmiany, a następnie przekazaliśmy je do naszego Nexusa.

Tu jest mniej więcej jak to robimy:

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

Cóż, właśnie to robimy. Chciałbym tylko zmienić wersję zależną od tomcat (np. Kiedy wydano nowe wydanie) i maven automatycznie ją pobierze. – coldrock

+1

Zobacz moją zaktualizowaną odpowiedź. – carlspring

+0

OK, to prawie tak samo jak my to robimy. Ale zamiast przenieść oryginalny tomcat.zip do systemu kontroli wersji, przechowujemy go w naszym nexusie. Kiedy chcę użyć nowej wersji tomcat, pobieram ją i ręcznie ładuję do naszego Nexusa, więc mogę ją nazwać rzeczywistą zależnością od mavenowej wersji. – coldrock

2

Jedyna lokalizacja wiem na pewno, to:

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

które mogą być używane przez Maven pobrania ...

+0

Ale to nie ma żadnych repozytoriów, pom-pom itd. Nie sądzę, że można to dodać do Nexusa jako proxy repo. – coldrock

+0

Tak, to nie jest repozytorium. Ale możesz użyć wtyczki do wagonów, aby pobrać ją podczas kompilacji Mavena. – khmarbaise

28

Dystrybucje Tomcat 7.0.35 i wyższe są w Maven Central pod org.apache.tomcat:tomcat z typem zip lub tar.gz.

+6

Przyjęta odpowiedź jest już nieaktualna i jest aktualna. – diegomtassis

Powiązane problemy