Birisi, diğer bazı kavanozlara bağlı bir uygulama olan bir jar dosyası oluşturmak için pom dosyasının nasıl görünmesi gerektiğini bana gösterebilir mi?Applet bağımlılıklar kavanoz ile maven kullanarak nasıl dağıtılır ve imzalanır?
cevap
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.
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>
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. –
2.2-beta-5'ten büyük herhangi bir maven-derleme-eklenti sürümü çökecektir. –