Project Structure:
/src
/main
/assembly/project-dojo.xml
/javascript
/profiles/project.profile.js
/projectpackage1/**.js
/projectpackage2/**.js
pom.xml
project.profile.js
dependencies ={
layers: [
{
name: "../projectpackage1/projectpackage1",//output file
dependencies: [
"projectpackage1.hello"//list of all the files that need to be compressed into the given file.
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
]
};
project-dojo.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: soc-dojo.xml,v 1.1 2010/04/06 19:27:59 rsingh Exp $ -->
<!-- Assembly descriptor for the CSP DOJO Custom Build ZIP -->
<assembly>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${basedir}/target/javascript/release/dojo</directory>
<outputDirectory></outputDirectory>
<includes>
<include>projectpackage1/**</include>
<include>projectpackage2/**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
pom.xml:
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>project-group</groupid>
<artifactid>project-name</artifactid>
<packaging>pom</packaging>
<name>SOC DOJO Custom Build Project</name>
<description>
<repositories>
<repository>
<id>topaz-repository</id>
<name>Topaz Project Maven2 Repository</name>
<url>http://maven.topazproject.org/maven2</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-dependency-plugin</artifactid>
<executions>
<execution>
<id>unpack dojo</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactitems>
<artifactitem>
<groupid>org.dojotoolkit</groupid>
<artifactid>dojo</artifactid>
<classifier>src</classifier>
<version>1.5.0</version>
<type>zip</type>
</artifactitem>
</artifactitems>
<outputdirectory>${project.build.directory}/javascript</outputdirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-resources-plugin</artifactid>
<version>2.3</version>
<executions>
<execution>
<id>copy-js</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputdirectory>${project.build.directory}/javascript</outputdirectory>
<resources>
<resource>
<directory>src/main/javascript</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupid>org.codehaus.mojo</groupid>
<artifactid>exec-maven-plugin</artifactid>
<version>1.1</version>
<configuration>
<executable>${java.home}/bin/java</executable>
<workingdirectory>${project.build.directory}/javascript/util/buildscripts</workingdirectory>
<arguments>
<argument>-classpath</argument>
<argument>../shrinksafe/js.jar</argument>
<argument>-classpath</argument>
<argument>../shrinksafe/shrinksafe.jar</argument>
<argument>org.mozilla.javascript.tools.shell.Main</argument>
<argument>build.js</argument>
<argument>profileFile=${project.build.directory}/javascript/profiles/soc.profile.js</argument>
<argument>action=release</argument>
<argument>optimize=shrinksafe</argument>
<argument>layerOptimize=shrinksafe</argument>
<argument>internStrings=true</argument>
<argument>cssOptimize=comments.keepLines</argument>
</arguments>
</configuration>
<executions>
<execution>
<id>generate-release</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactid>maven-assembly-plugin</artifactid>
<configuration>
<descriptors>
<descriptor>src/main/assembly/soc-dojo.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-install-plugin</artifactid>
<executions>
<execution>
<id>install-custom-build</id>
<phase>package</phase>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</description></project>