Новые записи ‹updateManifestEntries› webstart-maven-plugin ломают приложение

Поскольку моя версия JDK обновлена ​​до u45, теперь я получаю предупреждения об отсутствии информации о безопасности. Поэтому я использовал следующие обновления безопасности как часть подписания веб-сайта с помощью webstart-maven-plugin.

<plugin>
<groupId> org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-4</version>
<executions>
    <execution>
        <phase>package</phase>
        <goals>
            <goal>jnlp-inline</goal>
            <!-- use jnlp, jnlp-inline or jnlp-single as appropriate -->
        </goals>
    </execution>
</executions>
<configuration>
    <!--outputDirectory></outputDirectory -->
    <!-- not required?? -->
    <!-- Set to true to exclude all transitive dependencies. Default is 
        false. -->
    <excludeTransitive>false</excludeTransitive>
    <!-- The path where the libraries are stored within the jnlp structure. 
        not required. by default the libraries are within the working directory -->
    <libPath>lib</libPath>
    <!-- resourcesDirectory>${project.basedir}/src/main/jnlp/resources</resourcesDirectory -->
    <!-- default value -->
    <!-- JNLP generation -->
    <jnlp>
        <!-- default values -->
        <!-- inputTemplateResourcePath>${project.basedir}</inputTemplateResourcePath -->
        <!--inputTemplate>src/main/jnlp/template.vm</inputTemplate -->
        <!-- relative to inputTemplateResourcePath -->
        <outputFile>xxxx.template</outputFile>
        <!-- defaults to launch.jnlp -->
        <!-- used to automatically identify the jar containing the main class. -->
        <!-- this is perhaps going to change -->
        <mainClass>XXXXXX</mainClass>
    </jnlp>
    <!-- SIGNING -->
    <!-- defining this will automatically sign the jar and its dependencies, 
        if necessary -->
    <sign>
        ..................
    </sign>
    <!-- BUILDING PROCESS -->
    <pack200>
        <enabled>false</enabled>
    </pack200>
    <gzip>true</gzip>
    <!-- default force when pack200 false, true when pack200 selected 
        ?? -->
    <!-- causes a version attribute to be output in each jar resource 
        element, optional, default is false -->
    <outputJarVersions>true</outputJarVersions>
    <!--install>false</install -->
    <!-- not yet supported -->
    <verbose>true</verbose>
    <updateManifestEntries>
        <Application-Name>cccccc</Application-Name>
        <Trusted-Library>true</Trusted-Library>
        <Permissions>all-permissions</Permissions> 
        <Codebase>*</Codebase>
        <Trusted-Only>true</Trusted-Only> 
    </updateManifestEntries>
</configuration>

Here

<updateManifestEntries>
<Application-Name>cccccc</Application-Name>
<Trusted-Library>true</Trusted-Library>
<Permissions>all-permissions</Permissions> 
<Codebase>*</Codebase>
<Trusted-Only>true</Trusted-Only> 
</updateManifestEntries>

ломает приложение при запуске. Внедрение зависимостей не происходит. Мне пришлось добавить обновленную информацию о манифесте даже для jar, связанного с Spring.

Я пытался сделать то же самое с

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <inherited>true</inherited>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
        </archive>
    </configuration>
</plugin>

Но не работает.

Ценю ваш немедленный ответ, так как я пытаюсь это сделать с прошлой недели.

Проблема связана с webstart-maven-plugin (1.0-beta-4), чей

<updateManifestEntries>
                            <!--    <Permissions>all-permissions</Permissions> 
                                <Application-Name>catsvision</Application-Name>
                                <Trusted-Library>true</Trusted-Library>
                                <Codebase>*</Codebase>
                                <Trusted-Only>true</Trusted-Only>  -->
                            </updateManifestEntries>

не работает, как ожидалось.

Когда я попытался сделать то же самое с

<plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <inherited>true</inherited>
                        <configuration>
                            <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                            <manifestFile>
                                src/main/resources/META-INF/MANIFEST.MF
                                </manifestFile>
                                <manifest>
                                    <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
                                    <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
                                </manifest>
                            </archive>
                        </configuration>
                    </plugin>

где MANIFEST.MF имеет следующую запись

Permissions: all-permissions
Application-Name: CATS Vision
Codebase: *
Trusted-Library: true
Trusted-Only: true

работал на меня. Но это было для конкретного JAR. Как я могу обновить записи манифеста для пакета JAR (я имею в виду мой пакет веб-запуска)? Есть ли какой-нибудь плагин для него, кроме maven-webstart-plugin?


person ASChakkalakal    schedule 10.12.2013    source источник
comment
Когда я попробовал это с помощью maven-jar-plugin , проблема с разрешением была решена. ‹manifestEntries› ‹!-- ‹Application-Name›My App‹/Application-Name›--› Не работает — JAR поврежден после добавления этой записи, и приложение не работает должным образом, хотя оно запущено ‹Permissions›all-permissions‹/ Разрешения› Работало ‹!--‹Codebase›www.XXX.xom‹/Codebase›--› Не работало ‹/manifestEntries›   -  person ASChakkalakal    schedule 12.12.2013


Ответы (1)


Это кажется открытой ошибкой с плагином maven-webstart

http://jira.codehaus.org/browse/MWEBSTART-224

Я решил эту проблему:

  1. Обновите атрибуты разрешений с помощью maven-antrun-plugin.
  2. Подпишите JARS с помощью maven-jarsigner-plugin
  3. Используйте maven-webstart-plugin только для создания пакета JNLP, а не для подписи или чего-либо еще
person ASChakkalakal    schedule 17.12.2013
comment
codehaus сейчас не работает, я постараюсь выяснить проблему и решить ее в ближайшее время. - person Tony Chemit; 16.12.2015