Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

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>

...