2010-01-08 18 views

cevap

9

Bu, diğer (imzalı) bağımlılık kavanozu uygulaması için örnek pon olduğunu. Uygulama modülünüzün kodu kavanoz içine paketlenecek ve test anahtarı kullanılarak imzalanacaktır.

<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"> 
    <parent> 
    <artifactId>parent</artifactId> 
    <groupId>com.example</groupId> 
    <version>0.1</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>applet</artifactId> 
    <version>0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>com.example.applet</name> 
    <build> 
    <finalName>${artifactId}-${version}</finalName> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jarsigner-plugin</artifactId> 
     <executions> 
      <execution> 
      <goals> 
       <goal>sign</goal> 
      </goals> 
      <phase>package</phase> 
      <configuration> 
       <keystore>src/main/keystore/signing-jar.keystore</keystore> 
       <alias>applet</alias> 
       <storepass>applet</storepass> 
       <keypass>applet</keypass> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>com.example</groupId> 
     <artifactId>other</artifactId> 
     <version>0.4</version> 
    </dependency> 
    </dependencies> 
</project> 

Bu anahtar deposunu oluşturmak (yer ve pom dosyasının bulunduğu yere çalıştırmak) için örnek bir kabuk yazısıdır: Eğer imzalı com.example.applet- olacak

#!/bin/sh 
KEYSTORE=src/main/keystore/signing-jar.keystore 
keytool -genkey -alias applet -keystore $KEYSTORE -storepass applet -keypass applet -dname "CN=developer, OU=group 3, O=com.example, L=Somewhere, ST=Germany, C=DE" 
keytool -selfcert -alias applet -keystore $KEYSTORE -storepass applet -keypass applet 

mvn paketin sonra 0,1-SNAPSHOT.jar. Web uygulamanızda bağımlılığınızla (com.example.other-0.4.jar) birlikte yerleştirin.

10

sen bir kavanoz dosyası görünebilmesi için sınıfları ve bağımlılıkları isterseniz, kullanmak gerekir ya assembly plugin veya jarsigner önce one-jar plugin. Montaj eklentisiyle aşağıdaki çalışma ayarlarına sahibim, normal (imzalı) kavanoz ve $ {artifactId} - $ {version} -jar-with-dependencies.jar (ayrıca imzalanmış) üretecek.

  <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2-beta-5</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <archive> 
        <index>true</index> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
       </archive> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-my-applet-jar</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jarsigner-plugin</artifactId> 
      <version>1.2</version> 
      <executions> 
       <execution> 
        <id>sign</id> 
        <goals> 
         <goal>sign</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <keystore>keystore</keystore> 
       <alias>keyalias</alias> 
       <storepass>storepass</storepass> 
       <keypass>keypass</keypass> 
      </configuration> 
     </plugin> 
+2

Ayrıca maven-shade-plugin, sınıf yolunda bulunan tüm bağımlılıkları olan tek bir yürütülebilir JAR üretmek için bir seçenektir. Ana fark, gölge eklentisinin gömülü JAR'ların aksine tüm bağımlılıkları ve gömülü .class dosyalarını içermesidir. –

+0

2.2-beta-5'ten büyük herhangi bir maven-derleme-eklenti sürümü çökecektir. –

İlgili konular