2012-07-31 34 views
17

yılında montaj kök yolunu pom.xml: kavanoz İşte

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.springframework.webflow</groupId> 
    <artifactId>spring-js-resources-thin</artifactId> 
    <version>2.2.1.RELEASE</version> 
    <name>Spring js lib</name> 
    <description>Spring javascript library without dojo</description> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2.1</version> 
       <configuration> 
        <descriptors> 
         <descriptor>src/main/assembly/assembly.xml</descriptor> 
        </descriptors> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

ve burada sorundur assembly.xml

<assembly> 
    <id>js-jar</id> 
    <formats> 
     <format>jar</format> 
    </formats> 
    <fileSets> 
     <fileSet> 
      <directory>src/main/resources/</directory> 
      <outputDirectory>/</outputDirectory> 
      <includes> 
       <include>META-INF/**/*</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

olduğunu her şey oluşturulan açmak jar dosyası (spring-js-sources-thin-2.2.1.RELEASE-js-jar.jar), kök klasörü her zaman artifactid-version (spring-js-sources-thin-2.2.1.RELEASE) olarak adlandırılır. META-INF.

Yine de, jar dosyasını artifactid-version.jar dosya adıyla, ancak sınıf yolundaki artifactid-version OLMADAN, maven deposundaki her kavanoz gibi oluşturabileceğimi merak ediyorum. Bence <outputDirectory> isminin bir seçeneği veya bir yolu olmalı.

<assembly> 
    <id>js-jar</id> 
    <formats> 
     <format>jar</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
     <fileSet> 
      <directory>src/main/resources/</directory> 
      <outputDirectory>.</outputDirectory> 
      <includes> 
       <include>META-INF/**/*</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

Ve maven-kavanoz-eklentisi kullanarak ilgili öneri çok geçerli:

+1

Kavanoz oluşturma için 'maven-jar-plugin' kullanmayı denediniz mi? –

cevap

39

Aşağıdaki kullanılarak elde edilebilir arşiv içinde temel dizini dahil etmemeye maven-montaj-eklentisi anlatmak zorunda iyi, çünkü biraz maven-assembly-plugin'i yanlış kullandığınıza benziyor.

Maven-assembly-plugin'in en son sürümlerinde root klasörü olarak . olmalıdır. Eğer / kullanırsanız bir uyarı alırsınız.

+0

Evet! Tam olarak ihtiyacım olan şey bu. Teşekkür ederim. – Dreamer

3

Öğeyi, düzeneğe benzer şekilde ekleyin. Eğer <includeBaseDirectory> kapatırsanız

<assembly> 
    <id>js-jar</id> 
    <formats> 
     <format>jar</format> 
    </formats> 

    <baseDirectory>myBaseDir</baseDirectory> 

    <fileSets> 
     <fileSet> 
      <directory>src/main/resources/</directory> 
      <outputDirectory>/</outputDirectory> 
      <includes> 
       <include>META-INF/**/*</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

sonra arşiv herhangi kökü olmaz. Yani ne istediğine bağlı. Örneğin, zip dosyalarımı, unzipping işleminden önce dir ve cd oluşturmayı unutursanız yanlışlıkla bir dizini yanlışlıkla kirletmemesi için bir temel dizine sahip olmayı tercih ederim. Çok daha uygun.