You should be able to do all of this generally with the
jar-with-dependencies configuration in the assembly plugin.

Looking at your assembly descriptor, your .groovy, .properties, and
.png files should not be in src/main/java but rather
src/main/resources. Then they would have been packaged automatically
with the rest of the project class files when you allowed Maven to do
its normal packaging.

Of course, if you have it working now, there's not much reason to keep
working on it. But I think there are some non-standard file locations
that you are using etc which are the source of some of your problems.

Wayne

On 4/14/08, Lally Singh <[EMAIL PROTECTED]> wrote:
> Thank you too for the quick response.
>
> Trust me, I've RTFMd for the last 4 days on this.  The documentation
> is great if you already know what you want to do.  If you don't then
> you spend 4 days digging, pulled along with the feeling that it's as
> simple as the documentation and experts imply.
>
> I got it to work.  For the list archives, here's what you do:
>
> 1. Use the assembly plugin
> 2. Create your own descriptor file
> 3. Copy everything manually.
>
> Something I'd hoped wouldn't be necessary, a self-running jar is one
> of those things I had assumed the toolchain would support easily.
>
> Here's my POM.  Below that is the assembly file:
> <?xml version="1.0" encoding="utf-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> 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>edu.vt.iddl.mobile</groupId>
>    <artifactId>Desktop</artifactId>
>    <packaging>jar</packaging>
>    <version>200801-SNAPSHOT</version>
>    <name>Desktop</name>
>    <url>http://maven.apache.org</url>
>    <dependencies>
>        <dependency>
>            <groupId>edu.vt.iddl.groovy</groupId>
>            <artifactId>GroovyBridge</artifactId>
>            <version>200801-SNAPSHOT</version>
>        </dependency>
>        <dependency>
>            <groupId>org.codehaus.groovy</groupId>
>            <artifactId>groovy-all</artifactId>
>            <version>1.1-beta-3</version>
>        </dependency>
>        <dependency>
>            <groupId>junit</groupId>
>            <artifactId>junit</artifactId>
>            <version>3.8.1</version>
>            <scope>test</scope>
>        </dependency>
>        <dependency>
>            <groupId>swing</groupId>
>            <artifactId>appframework</artifactId>
>            <version>1.0.3</version>
>            <scope>compile</scope>
>        </dependency>
>        <dependency>
>            <groupId>swing</groupId>
>            <artifactId>swing-worker</artifactId>
>            <version>1.1</version>
>            <scope>compile</scope>
>        </dependency>
>        <dependency>
>            <groupId>net.java.dev.swing-layout</groupId>
>            <artifactId>swing-layout</artifactId>
>            <version>1.0.2</version>
>        </dependency>
>        <dependency>
>            <groupId>commons-dbcp</groupId>
>            <artifactId>commons-dbcp</artifactId>
>            <version>1.2.2</version>
>        </dependency>
>        <dependency>
>            <groupId>log4j</groupId>
>            <artifactId>log4j</artifactId>
>            <version>1.2.14</version>
>        </dependency>
>        <dependency>
>            <groupId>org.springframework</groupId>
>            <artifactId>spring</artifactId>
>            <version>2.5</version>
>        </dependency>
>        <dependency>
>            <groupId>org.springframework</groupId>
>            <artifactId>spring-test</artifactId>
>            <version>2.5</version>
>        </dependency>
>    </dependencies>
>    <profiles>
>        <profile>
>            <id>netbeans-public</id>
>            <activation>
>                <property>
>                    <name>netbeans.execution</name>
>                    <value>true</value>
>                </property>
>            </activation>
>            <build>
>                <plugins>
>                    <plugin>
>                        <artifactId>maven-jar-plugin</artifactId>
>                        <configuration>
>                            <archive>
>                                <manifest>
>                                    <addClasspath>true</addClasspath>
>                                    <classpathPrefix>lib</classpathPrefix>
>
> <mainClass>edu.vt.iddl.mobileadmin.MobileAdminApp</mainClass>
>                                </manifest>
>                            </archive>
>                        </configuration>
>                    </plugin>
>                    <plugin>
>                        <artifactId>maven-assembly-plugin</artifactId>
>                        <executions>
>                            <execution>
>                                <id>nb</id>
>                                <phase>package</phase>
>                                <goals>
>                                    <goal>directory</goal>
>                                </goals>
>                                <configuration>
>
> <descriptor>${basedir}/src/main/assemblies/netbeans-run.xml</descriptor>
>                                    <finalName>executable</finalName>
>                                </configuration>
>                            </execution>
>                        </executions>
>                    </plugin>
>                </plugins>
>            </build>
>        </profile>
>    </profiles>
>    <build>
>        <plugins>
>            <plugin>
>                <artifactId>maven-compiler-plugin</artifactId>
>                <configuration>
>                    <source>1.5</source>
>                    <target>1.5</target>
>                </configuration>
>            </plugin>
>            <plugin>
>                <groupId>org.apache.maven.plugins</groupId>
>                <artifactId>maven-jar-plugin</artifactId>
>                <configuration>
>                    <archive>
>                        <manifest>
>
> <mainClass>edu.vt.iddl.mobileadmin.MobileAdminApp</mainClass>
>                            <packageName>edu.vt.iddl.mobileadmin</packageName>
>                            <addClasspath>true</addClasspath>
>                        </manifest>
>                        <manifestEntries>
>                            <mode>development</mode>
>                            <url>${pom.url}</url>
>                        </manifestEntries>
>                    </archive>
>                </configuration>
>            </plugin>
>            <plugin>
>                <groupId>org.apache.maven.plugins</groupId>
>                <artifactId>maven-assembly-plugin</artifactId>
>                <version>2.2-beta-2</version>
>                <configuration>
>                    <descriptors>
>
> <descriptor>${basedir}/src/main/assemblies/dist.xml</descriptor>
>                    </descriptors>
>                    <archive>
>                        <manifest>
>
> <mainClass>edu.vt.iddl.mobileadmin.MobileAdminApp</mainClass>
>                            <packageName>edu.vt.iddl.mobileadmin</packageName>
>                            <addClasspath>true</addClasspath>
>                        </manifest>
>                    </archive>
>                </configuration>
>            </plugin>
>        </plugins>
>    </build>
> </project>
>
> The assembly file: src/main/assemblies/dist.xml:
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!--
>    Document   : dist.xml
>    Created on : April 14, 2008, 1:27 PM
>    Author     : lally
>    Description:
>        Sets up the maven assembly plugin to build a proper jar.
> -->
>
> <assembly>
>    <id>dist</id>
>    <includeBaseDirectory>false</includeBaseDirectory>
>    <formats>
>        <format>jar</format>
>    </formats>
>    <dependencySets>
>        <dependencySet>
>            <outputDirectory></outputDirectory>
>            <outputFileNameMapping></outputFileNameMapping>
>            <unpack>true</unpack>
>            <scope>runtime</scope>
>        </dependencySet>
>    </dependencySets>
>    <fileSets>
>        <fileSet>
>            <directory>target/classes</directory>
>            <outputDirectory></outputDirectory>
>        </fileSet>
>        <fileSet>
>            <directory>src/main/scripts</directory>
>            <outputDirectory>scripts</outputDirectory>
>            <includes>
>                <include>*.groovy</include>
>            </includes>
>        </fileSet>
>        <fileSet>
>            <directory>src/main/java</directory>
>            <outputDirectory></outputDirectory>
>            <includes>
>                <include>**/*.properties</include>
>            </includes>
>        </fileSet>
>        <fileSet>
>            <directory>src/main/java</directory>
>            <outputDirectory></outputDirectory>
>            <includes>
>                <include>**/*.png</include>
>            </includes>
>        </fileSet>
>    </fileSets>
> </assembly>
>
>
>
>
>
>
> On Mon, Apr 14, 2008 at 3:27 PM, Manos Batsis
> <[EMAIL PROTECTED]> wrote:
> > Lally Singh wrote:
> >
> > > Thanks for the quick response.  I tried it, but I couldn't figure out how
> > to:
> > > 1. Get my .class files in there either.
> > > 2. Set up the manifest.
> > >
> >
> >  Here a sample conf we use that tell the plugin to:
> >
> >  1: Put all class files in one jar (including classes from dependencies)
> >  2: Set the main class in the manifest
> >
> >  It's all there if you RTFM ;-)
> >
> >  hth,
> >
> >  Manos
> >
> >
> >
> >  <plugin>
> >         <artifactId>maven-assembly-plugin</artifactId>
> >         <configuration>
> >           <!-- you need this to include classes from deps -->
> >           <descriptorId>jar-with-dependencies</descriptorId>
> >           <finalName>JAR_NAME_HERE</finalName>
> >           <outputDirectory>target/</outputDirectory>
> >           <workDirectory>target/assembly/work</workDirectory>
> >           <scope>runtime</scope>
> >           <archive>
> >             <manifest>
> >               <!-- use the following as the main class in the manifest -->
> >               <mainClass>gr.abiss.someproject.App</mainClass>
> >               <addClasspath>true</addClasspath>
> >             </manifest>
> >           </archive>
> >         </configuration>
> >
> >         <executions>
> >           <execution>
> >             <id>make-assembly</id>
> >             <!-- this is used for inheritance merges -->
> >             <phase>package</phase>
> >             <goals>
> >               <goal>attached</goal>
> >             </goals>
> >           </execution>
> >         </executions>
> >       </plugin>
> >
> >
> >
> >  ---------------------------------------------------------------------
> >  To unsubscribe, e-mail: [EMAIL PROTECTED]
> >  For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
>
> --
> H. Lally Singh
> Ph.D. Candidate, Computer Science
> Virginia Tech
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to