2010-09-15 11 views
7

Próbuję utworzyć rozpakowalny zip mojego projektu, który zawiera kilka plików konfiguracyjnych i katalogów, a także plik wykonywalny mojego projektu. W dodatku do montażu Maven znalazłem sposób na stworzenie pliku wykonywalnego z pełnymi zależnościami. Jednak nie byłem w stanie dowiedzieć się, jak utworzyć plik zip wokół słoika po jego utworzeniu. Idealnie, chciałbym przenieść słoik do katalogu, który już ma odpowiednie pliki i podkatalogi, a następnie skompresować całą zawartość naraz. Czy jest jakiś sposób to zrobić?Używanie Mavena do utworzenia pliku zip zawierającego plik wykonywalny z zależnościami

edit:

Mam teraz budynek słój, i prymitywny zamek, jak również. Mój plik złożenia wygląda następująco:

<assembly> 
    <id>financials-import-server</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <dependencySets> 
     <dependencySet> 
     </dependencySet> 
    </dependencySets> 
    <files> 
     <file> 
      <source>target/import-server-1.0.0-SNAPSHOT.jar</source> 
      <destName>service.jar</destName> 
      <outputDirectory>/</outputDirectory> 
     </file> 
    </files> 
</assembly> 

Czuję się komfortowo, włączając w to inne pliki, których potrzebowałam, takie jak pliki konfiguracyjne lub skrypty powłoki. Pozostało mi kilka pytań. Jak utworzyć puste katalogi w pliku zip? W jaki sposób mogę zmienić nazwę tworzonego pliku?

Dzięki za pomoc!

Odpowiedz

5

Najpierw użyj wtyczki Maven JAR, aby utworzyć executable JAR.

Następnie skonfiguruj swój zespół tak, aby zawierał wszystkie potrzebne pliki (ewentualnie możesz dodać plik run.bat/run.sh, który uruchomi aplikację), a także all dependencies.

Wreszcie wiążą stworzenie zespołu do celu pakietu w pom.xml:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <configuration> 
     <descriptors> 
      <descriptor>/path/to/my-assembly.xml</descriptor> 
     </descriptors> 
     </configuration> 
     <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
      <goal>single</goal> 
      </goals> 
     </execution> 
     </executions> 
     ... 

ten sposób, wystarczy uruchomić jedno polecenie Maven mvn clean install na przykład, aby skompilować projekt, a następnie tworzy Pakiet ZIP.

nie wahaj się aktualizować swoje pytanie, jeśli moja odpowiedź nie pasuje do Twoich potrzeb, a można też podać swój aktualny assembly.xml i pom.xml ...


Edycja

dotycząceTwojego update:

Nie sądzę, że montaż pozwoli ci utworzyć pusty katalog. Chodzi o to, aby umieścić pusty plik (lub na przykład readme.txt) i dołączyć katalog w ostatecznym ZIP. Na przykład, w moim projekcie, chcę mieć katalog logs/, więc mam logs/ katalog w moim projekcie, który zawiera tylko readme.txt plik:

<fileSets> 
    <fileSet> 
     <directory>../my-package/logs</directory> 
     <outputDirectory>logs/</outputDirectory> 
    </fileSet> 
</fileSets> 

dla imienia ZIP utworzony, można go określić w pom.xml:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2-beta-4</version> 
      <configuration> 
       <descriptors> 
        <descriptor>my-assembly.xml</descriptor> 
       </descriptors> 
       <finalName>TheName</finalName> 

Jeśli się nie mylę, zespół będzie używać tej nazwy, dodaj ID zdefiniowany w pliku assembly.xml i wykorzystuje prefiks dostosowanego do określonego formatu.

+0

Dzięki, pracowałem w oparciu o to i poczyniłem pewne postępy. Potem znowu utknąłem. Jakieś sugestie? – Zoe

+0

@ZoeGagnon Zaktualizowałem swoją odpowiedź. – romaintaz

+0

Dziękuję. Twoja odpowiedź jest fantastyczna i bardzo pomocna. – Zoe

Powiązane problemy