Какой лучший способ включить внешние банки в подписанную банку, используемую апплетом?

У меня есть апплет, который использует несколько внешних библиотек. Проект требует, чтобы апплет JAR был подписан, потому что я выполняю дисковые операции. Другое требование состоит в том, чтобы все библиотеки были включены в банку апплета. Моя первая попытка работать таким образом состояла в том, чтобы включить все JAR-файлы библиотек в локальный каталог проекта Eclipse и включить их в проект Eclipse. После этого я экспортировал весь проект как неисполняемый JAR, запустив большинство библиотек. Но на некоторые библиотеки все еще нет ссылок, и я не могу полностью запустить свое приложение через апплет. Есть ли более подходящий способ использовать библиотеки внутри подписанного JAR апплета?


person Nadev    schedule 19.12.2013    source источник


Ответы (1)


Если вы используете maven, вы можете извлечь все необходимые классы. Плагин maven сделает это за вас. Он также может подписать его, если у вас есть файл jks. Вот некоторые настройки для maven.

<plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>attached</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>sign</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <keystore>${basedir}/the jks.jks</keystore>
                <alias>the alias</alias>
                <storepass>the store pass</storepass>
                <signedjar>${project.build.directory}/signed/${project.build.finalName}.jar</signedjar>
             <verify>true</verify>

               <jarPath>${project.build.directory}/${project.build.finalName}-jar-with-dependencies.${project.packaging}</jarPath>
        </configuration>
              </plugin>
    </plugins>
person Edgesoft    schedule 26.12.2013