2012-11-05 16 views
18

Mam kilka projektów zależnych od zestawu komercyjnych bibliotek zewnętrznych. Obecnie nie posiadamy repozytorium firm, więc muszę zainstalować biblioteki w moim lokalnym repozytorium.Plik Maven POM do instalowania bibliotek komercyjnych innych firm

Uruchamianie mvn install:installFile -Dpackaging=jar -Dfile=<file> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> dla każdego pliku jest dość uciążliwe. Można utworzyć plik bat, ale czy istnieje sposób, aby to zrobić za pomocą maven?

myślę projekt dla wszystkich słoików i jeden plik pom ze wszystkimi identyfikatorami grupy IDS artefaktu wersjach i nazwy plików, a następnie możliwość po prostu działa mvn install w tym projekcie, albo coś wzdłuż tych linii.

Czy coś takiego jest możliwe?


Uwaga: Używam Maven 3, ale to rozwiązanie zgodne Maven 2 byłby miły.

Odpowiedz

8

Ostatnio odkryto nowe rozwiązanie tego problemu. Zasadniczo można utworzyć lokalne repozytorium w ramach projektu, które można sprawdzić za pomocą reszty kodu źródłowego. Blogował o tym tutaj: http://www.geekality.net/?p=2376.

Istotą jest wdrożenie zależności do folderu w projekcie.

mvn deploy:deploy-file 
    -Durl=file:///dev/project/repo/ 
    -Dfile=somelib-1.0.jar 
    -DgroupId=com.example 
    -DartifactId=somelib 
    -Dpackaging=jar 
    -Dversion=1.0 

A potem po prostu niech Maven o tym wiedzieć i korzystać deklaracji zależnościami jak normalny pośrednictwem pom.xml.

<repositories> 
    <repository> 
     <id>project.local</id> 
     <name>project</name> 
     <url>file:${project.basedir}/repo</url> 
    </repository> 
</repositories> 

<dependency> 
    <groupId>com.example</groupId> 
    <artifactId>somelib</artifactId> 
    <version>1.0</version> 
</dependency> 

Nie bardzo Maven'y, ale działa i porusza zależności do repozytorium firmy później powinno być dość proste.

32

Możesz po prostu stworzyć pom.xml z wieloma wykonaniami install-file celem instalacji wtyczki Maven. Zakładając, że te pliki są już gdzieś dostępne lokalnie (lub możesz je pobrać using Wagon plugin).

<project> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.somegroup</groupId> 
    <artifactId>my-project</artifactId> 
    <version>1.0</version> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-install-plugin</artifactId> 
      <version>2.4</version/> 
      <executions> 
      <execution> 
       <id>install1</id> 
       <phase>package</phase> 
       <goals> 
       <goal>install-file</goal> 
       </goals> 
       <configuration> 
       <file>lib/your-artifact-1.0.jar</file> 
       <groupId>org.some.group</groupId> 
       <artifactId>your-artifact</artifactId> 
       <version>1.0</version> 
       ... other properties 
       </configuration> 
      </execution> 
      <execution> 
       <id>install2</id> 
       <phase>package</phase> 
       <goals> 
       <goal>install-file</goal> 
       </goals> 
       ... etc 

      </execution> 
      ... other executions 
      </executions> 
     </plugin> 
     </plugins> 
    </build> 
    </project> 

więc z powyższego fragmentu mvn package pom powinno załatwić sprawę.

Istnieją dobre Maven POM tutorial i POM reference.

+0

Załóżmy, że masz plik pom.xml i folder o nazwie lib, w którym znajdują się wszystkie pliki jar. Czy mógłbyś stworzyć przykład? – Svish

+0

To jest prosta forma do dokumentów, ale tutaj ... –

+0

Przepraszam, jestem kompletny newb w tej dziedzinie. Jak wyglądałaby reszta pliku? Z pom.xml jest jak najmniejszy. – Svish

Powiązane problemy