Java-Gaming.org Java4K winners: [ by our judges | by the community ]         
Featured games (67)
games approved by the League of Dukes
Games in Showcase (∞)
games submitted by our members



News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  Print  
  Ant build script for making a keystore and signing all jar files  (Read 835 times)
0 Members and 1 Guest are viewing this topic.
Offline CommanderKeith

JGO Wizard
****

Posts: 1455
Medals: 9



« on: 2011-07-24 13:13:12 »

Hi,

Signing jar files for the purpose of making a webstart-able java app that can use 'all permissions' is a pain in the butt. Most of you probably already have some automatic utility that does the jar signing but I didn't and just spent hours figuring it out so I wanted to share it with other n00bs  Smiley

This Ant build code snippet will generate a keystore file, then finds all jars in the 'dist' directory and copies them into the 'distSigned' directory where they will be signed with the keystore.

It works for me in Netbeans and should work for Eclipse etc too since it also uses Ant as far as i know.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
<!-- Custom build script that makes a keystore, finds all jars in the 'dist' directory and copies them into the 'distSigned' directory where they will be signed with the keystore. -->
<!-- Insert this code in your project's build.xml file just before the </project> tag. -->
<target name="-post-jar">
   <property name="aliasName" value="Keith"/>
   <property name="password" value="password"/>
   <property name="keystoreFileName" location="keystoreFileName.ks"/>
   <property name="firstNameSurName" value="Keith Woodward"/>
   <property name="organisationUnitOrDepartment" value=""/>
   <property name="organisationName" value=""/>
   <property name="cityOrLocality" value="Sydney"/>
   <property name="stateOrProvince" value="NSW"/>
   <property name="twoLetterJavaLocaleCountryCode" value="AU"/>



   <delete file="${keystoreFileName}" failonerror="false" />
   <genkey alias="${aliasName}" storepass="${password}" keystore="${keystoreFileName}">
      <dname>
      <param name="CN" value="${firstNameSurName}"/>
      <param name="OU" value="${organisationUnitOrDepartment}"/>
      <param name="O"  value="${organisationName}"/>
      <param name="L"  value="${cityOrLocality}"/>
      <param name="ST"  value="${stateOrProvince}"/>
      <param name="C"  value="${twoLetterJavaLocaleCountryCode}"/>  
      </dname>
   </genkey>

   <delete dir="distSigned" failonerror="false" />
   <mkdir dir="distSigned" />
   <signjar destDir="distSigned"
      alias="${aliasName}" keystore="${keystoreFileName}"
      storepass="${password}"
      preservelastmodified="true">
      <path>
      <fileset dir="dist" includes="*.jar" />
      </path>
      <flattenmapper />
   </signjar>

   <mkdir dir="distSigned/lib" />
   <signjar destDir="distSigned/lib"
      alias="${aliasName}" keystore="${keystoreFileName}"
      storepass="${password}"
      preservelastmodified="true">
      <path>
      <fileset dir="dist/lib" includes="*.jar" />
      </path>
      <flattenmapper />
   </signjar>


</target>


Just change the property values to what you want, for example, change:
1  
<property name="aliasName" value="Keith"/>

to
1  
<property name="aliasName" value="YourName"/>


If anyone has any improvements I'd be very interested  Cool

PS: thanks to krasse, AlanW and ra4king for their tips here: http://www.java-gaming.org/index.php?topic=23891.0

Pages: [1]
  Print  
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.087 seconds with 19 queries.