Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

This goal is defined in the ServiceInstallersMojo class and .

Its configuration takes an "Application" as argument which defines a few parameters (name, description, version, etc.)

It uses various installer targets:

  • IzPacKTargets (Old multi-platforms installer made with IzPack)
  • RpmTagets (Current RPM package installer)
  • PkgTargets (Current Mac OS X PKG package installer)
  • InnoTargets (Old Windows installer made with Inno)
  • NsisTargets (Current Windows Installer made with NSIS)
  • DebTargets (Current Deb package installer)
  • BinTargets (Current Bin package installer)

It also defines "exclusions" for libraries that should not be bundled in the lib directory and "packageFiles" for files that should be packaged within the installer.

Installers ApacheDS project

Installers ApacheDS NoArch project

This projects builds the installers using the Deamon Plugin.

It only includes a "Dummy" java class and a few resources for the installers.

The setup is done in the pom.xml file of the project.

Various profiles are defined to generate different installers.

Here's an example of profile:

No Format

<profiles>
   <profile>
      <id>macosx</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.directory.daemon</groupId>
            <artifactId>daemon-plugin</artifactId>
            <version>1.1.2-SNAPSHOT</version>
            <configuration>
              <application>
                <name>apacheds</name>
                <version>1.5.2-SNAPSHOT</version>
                <description>Apache Directory Suite</description>

                <icon>src/main/resources/feather.ico</icon>
                <copyrightYear>2007</copyrightYear>
                <minimumJavaVersion>1.5</minimumJavaVersion>
                <url>http://directory.apache.org</url>
                <email>users@directory.apache.org</email>
                <license>target/classes/META-INF/LICENSE</license>
                <authors>
                  <author>Apache Directory Team</author>
                  <author>akarasulu@apache.org</author>
                  <author>ckoppelt@apache.org</author>
                  <author>elecharny@apache.org</author>
                  <author>erodriguez@apache.org</author>
                  <author>ersiner@apache.org</author>
                  <author>oersoy@apache.org</author>
                  <author>pamarcelot@apache.org</author>
                  <author>szoerner@apache.org</author>
                  <author>seelmann@apache.org</author>
                  <author>trustin@apache.org</author>
                </authors>
              </application>
              <packagedFiles>
                <packagedFile>
                  <source>org.apache.directory.server:apacheds-server-tools</source>
                  <destinationPath>bin/apacheds-tools.jar</destinationPath>
                  <dependency>true</dependency>
                  <installationBundleId>Binaries</installationBundleId>
                </packagedFile>
                <packagedFile>
                  <source>target/classes/META-INF/NOTICE</source>
                  <destinationPath>NOTICE</destinationPath>
                  <executable>false</executable>
                  <filtered>true</filtered>
                </packagedFile>
              </packagedFiles>
              <applicationClass>
                org.apache.ldap.server.Service
              </applicationClass>
              <pkgTargets>
                <pkgTarget>
                 <id>apacheds-macosx</id>
                  <finalName>apacheds-macosx</finalName>
                  <osName>Mac OS X</osName>
                  <osFamily>macosx</osFamily>
                  <osVersion>10.5</osVersion>
                  <osArch>x86</osArch>
                  <daemonFramework>tanuki</daemonFramework>
                </pkgTarget>
              </pkgTargets>

              <excludes>
                <!-- apacheds-tools.jar does not get put in lib directory -->
                <exclude>org.apache.directory.server:apacheds-server-tools</exclude>

                <exclude>ant:ant</exclude>
                <exclude>aopalliance:aopalliance</exclude>
                <exclude>xerces:xerces</exclude>
                <!--exclude>commons-pool:commons-pool</exclude-->
                <exclude>xml-apis:xml-apis</exclude>
                <exclude>aspectwerkz:aspectwerkz-core</exclude>
                <exclude>velocity:velocity</exclude>
                <exclude>org.springframework:spring-aop</exclude>
                <exclude>qdox:qdox</exclude>
                <exclude>oro:oro</exclude>
                <exclude>commons-attributes:commons-attributes-compiler</exclude>
                <exclude>commons-attributes:commons-attributes-api</exclude>
                <exclude>cglib:cglib</exclude>
                <exclude>velocity:velocity-dep</exclude>
                <exclude>com.jamonapi:jamon</exclude>
                <exclude>asm:asm</exclude>
                <exclude>freemarker:freemarker</exclude>
                <exclude>asm:asm-util</exclude>
                <exclude>jasperreports:jasperreports</exclude>
              </excludes>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

Installers ApacheDS NoArch project

This project produces The two first projects will generate the platform specific installers that have been discussed above, while the last one will produce a tarball containing the Default Apache DS server files layout, that you can unpack where you want (it does not include the Tanuki wrapper, so this is a one-instance server only).

Generating Installers

To generate the installers, you have to go to the Installers ApacheDS project (/installers/apacheds) and execute the following command

No Format

mvn clean install -Pprofile

where "profile" is the name of the installers profile you want to use.