Ствараючы праграмму на javafx для вэб выкарыстоўваецца так званы JNLP (Java Network Launch Protocol). Аднак пры выкарыстанні JNLP сутыкаемся з адной праблемай: усе джаркі павінны быць падпісаны. Вось варыянт як гэта зрабіць у maven2-праекце:
1. Першапачаткова патрэбна сгенерыраваць файл-ключ. Гэта зробім з дапамогай плагіну keytool-maven-plugin.
Адзін экзэкьюшн робіць ачышчэнне файла-ключа на стадыі падрыхтойкі праекту да сборкі, другі генерыруе ізноў
2. Падпісванне джарак
1. Першапачаткова патрэбна сгенерыраваць файл-ключ. Гэта зробім з дапамогай плагіну keytool-maven-plugin.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>keytool-maven-plugin</artifactId>
<executions>
<execution>
<id>generatekey</id>
<phase>process-resources</phase>
<goals>
<goal>genkey</goal>
</goals>
</execution>
<execution>
<id>cleaning</id>
<phase>validate</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>${project.build.directory}/keystore</keystore>
<alias>myalias</alias>
<dname>cn=www.example.com, ou=None, L=Seattle, ST=Washington, o=ExampleOrg, c=US</dname>
<keypass>m2m2m2</keypass>
<storepass>m2m2m2</storepass>
</configuration>
</plugin>
Адзін экзэкьюшн робіць ачышчэнне файла-ключа на стадыі падрыхтойкі праекту да сборкі, другі генерыруе ізноў
2. Падпісванне джарак
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>mian_sign</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>jar</goal>
                            <goal>sign</goal>
                        </goals>
                        <configuration>
                            <jarPath>${project.build.directory}/our_app.jar</jarPath>
                            <signedjar>${project.build.directory}/app/our_app.jar</signedjar>  
                        </configuration>
                    </execution>
                    <execution>
                        <id>depended_jar_sign</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                        <configuration>
                            <jarPath>${basedir}/lib/depended_jar.jar</jarPath>
                            <signedjar>${project.build.directory}/app/depended_jar.jar</signedjar>                            
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <alias>myalias</alias>
                    <keystore>keystore</keystore>
                    <storepass>m2m2m2</storepass>
                    <verify>true</verify>
                </configuration>
            </plugin>
Comments