Tim,
what version of the assembly plugin are you using? I have a very similar
setup to Evan's, and I'm getting the same "does not have an artifact with a
file" error when binding to package and running the single goal. I'm using
the latest released assembly, 2.2-beta-1.
Kalle
On 9/5/07, Evan Toliopoulos <[EMAIL PROTECTED]> wrote:
>
> Thanks,
> I will try this and post back what I find.
> If it's working for you then I suspect I must have configured something
> wrong somewhere in my one of my poms.
> Cheers,
> Evan.
>
> Tim Kettler wrote:
> > It's working for me with this test project:
> > .
> > |-- pom.xml
> > |-- src
> > | `-- main
> > | `-- assembly
> > | `-- assembly.xml
> > |-- suba
> > | |-- pom.xml
> > | `-- src
> > | `-- main
> > | `-- java
> > | `-- TestClass.java
> > `-- subb
> > |-- pom.xml
> > `-- src
> > `-- main
> > `-- java
> > `-- TestClass.java
> >
> > pom.xml:
> >
> > <project>
> > <modelVersion>4.0.0</modelVersion>
> > <groupId>my-test-group</groupId>
> > <artifactId>parent</artifactId>
> > <version>1.0-SNAPSHOT</version>
> > <packaging>pom</packaging>
> >
> > <modules>
> > <module>suba</module>
> > <module>subb</module>
> > </modules>
> >
> > <build>
> > <plugins>
> > <plugin>
> > <artifactId>maven-assembly-plugin</artifactId>
> > <inherited>false</inherited>
> > <configuration>
> > <descriptors>
> > <descriptor>src/main/assembly/assembly.xml</descriptor>
> > </descriptors>
> > </configuration>
> > <executions>
> > <execution>
> > <id>make-assembly</id>
> > <phase>package</phase>
> > <goals>
> > <goal>single</goal>
> > </goals>
> > </execution>
> > </executions>
> > </plugin>
> > </plugins>
> > </build>
> > </project>
> >
> > suba/pom.xml:
> >
> > <project>
> > <modelVersion>4.0.0</modelVersion>
> > <groupId>my-test-group</groupId>
> > <artifactId>suba</artifactId>
> > <version>1.0-SNAPSHOT</version>
> > </project>
> >
> > subb/pom.xml:
> >
> > <project>
> > <modelVersion>4.0.0</modelVersion>
> > <groupId>my-test-group</groupId>
> > <artifactId>subb</artifactId>
> > <version>1.0-SNAPSHOT</version>
> >
> > <dependencies>
> > <dependency>
> > <groupId>my-test-group</groupId>
> > <artifactId>suba</artifactId>
> > <version>1.0-SNAPSHOT</version>
> > </dependency>
> > </dependencies>
> > </project>
> >
> > src/main/assembly/assembly.xml:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <assembly>
> > <formats>
> > <format>zip</format>
> > <format>tar.gz</format>
> > </formats>
> >
> > <includeBaseDirectory>true</includeBaseDirectory>
> >
> > <moduleSets>
> > <moduleSet>
> > <binaries>
> > <includeDependencies>true</includeDependencies>
> > <unpack>false</unpack>
> > <outputDirectory>lib</outputDirectory>
> > <fileMode>664</fileMode>
> > <directoryMode>775</directoryMode>
> > </binaries>
> > </moduleSet>
> > </moduleSets>
> > </assembly>
> >
> > I tested this with an empty local repository to ensure only released
> > plugins are used. Here's the relevant output from 'mvn clean install':
> >
> > [INFO] [assembly:single {execution: make-assembly}]
> > [INFO] Reading assembly descriptor:
> >
> /home/tik/Develop/maven-testprojects/pomassembly/src/main/assembly/developer-
> assembly.xml
> >
> > [WARNING] NOTE: Currently, inclusion of module dependencies may
> > produce unpredictable results if a version conflict occurs.
> > [INFO] Processing DependencySet (output=lib)
> > [INFO] Processing DependencySet (output=lib)
> > [INFO] Building zip:
> > /home/tik/Develop/maven-testprojects/pomassembly/target/parent-
> 1.0-SNAPSHOT.zip
> >
> > [WARNING] NOTE: Currently, inclusion of module dependencies may
> > produce unpredictable results if a version conflict occurs.
> > [INFO] Processing DependencySet (output=lib)
> > [INFO] Processing DependencySet (output=lib)
> > [INFO] Building tar :
> > /home/tik/Develop/maven-testprojects/pomassembly/target/parent-
> 1.0-SNAPSHOT.tar.gz
> >
> > [INFO] [install:install]
> > [INFO] Installing
> > /home/tik/Develop/maven-testprojects/pomassembly/pom.xml to
> >
> /home/tik/Develop/maven-testprojects/repository/my-test-group/parent/1.0-SNAPSHOT/parent-
> 1.0-SNAPSHOT.pom
> >
> > [INFO] Installing
> > /home/tik/Develop/maven-testprojects/pomassembly/target/parent-
> 1.0-SNAPSHOT.zip
> > to
> >
> /home/tik/Develop/maven-testprojects/repository/my-test-group/parent/1.0-SNAPSHOT/parent-
> 1.0-SNAPSHOT.zip
> >
> > [INFO] Installing
> > /home/tik/Develop/maven-testprojects/pomassembly/target/parent-
> 1.0-SNAPSHOT.tar.gz
> > to
> >
> /home/tik/Develop/maven-testprojects/repository/my-test-group/parent/1.0-SNAPSHOT/parent-
> 1.0-SNAPSHOT.tar.gz
> >
> >
> > Hope this helps
> > -Tim
> >
> > Evan Toliopoulos schrieb:
> >> Thanks,
> >>
> >> Though it still is not working. I get the following error:
> >>
> >> Failed to create assembly: Artifact:
> >> com.emagineinternational:sms-transceiver-mq:jar:6.5.1-SNAPSHOT
> >> (included by module) does not have an artifact with a file. Please
> >> ensure the package phase is run before the assembly is generated.
> >>
> >> What you have described is what we already do for maven projects that
> >> get built into a jar as well as have a tar.gz assembly and it works
> >> fine for those projects.
> >>
> >> The difference with this project is that is a parent project which
> >> does not have any source code of it's own. It is declared as a
> >> <packaging>pom</packaging> project that has a number of child
> >> <module>...</module> projects. We then have an assembly descriptor
> >> that assembles all the child project jars as well as any dependencies
> >> into a tar.gz archive ready for distribution.
> >>
> >> Any further ideas?
> >>
> >> BTW, our assembly descriptor looks like:
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <assembly>
> >> <formats>
> >> <format>zip</format>
> >> <format>tar.gz</format>
> >> </formats>
> >> <includeBaseDirectory>true</includeBaseDirectory>
> >>
> >> <moduleSets>
> >> <moduleSet>
> >> <binaries>
> >> <includeDependencies>true</includeDependencies>
> >> <unpack>false</unpack>
> >> <outputDirectory>lib</outputDirectory>
> >> <fileMode>664</fileMode>
> >> <directoryMode>775</directoryMode>
> >> </binaries>
> >> </moduleSet>
> >> </moduleSets>
> >>
> >> <fileSets>
> >> <fileSet>
> >> <directory>src/main/etc</directory>
> >> <outputDirectory>etc</outputDirectory>
> >> <fileMode>775</fileMode>
> >> <directoryMode>775</directoryMode>
> >> </fileSet>
> >> <fileSet>
> >> <directory>src/main/config</directory>
> >> <outputDirectory>conf</outputDirectory>
> >> <fileMode>664</fileMode>
> >> <directoryMode>775</directoryMode>
> >> </fileSet>
> >> </fileSets>
> >>
> >> </assembly>
> >>
> >>
> >>
> >>
> >> Tim Kettler wrote:
> >>> Hi,
> >>>
> >>> Evan Toliopoulos schrieb:
> >>>> Hi,
> >>>>
> >>>> I am having trouble deploying a 'tar.gz' assembly of a parent project
> >>>> using the deploy goal.
> >>>>
> >>>> The parent project has a number of child module projects.
> >>>>
> >>>> Essentially I am running the following on the parent project:
> >>>>
> >>>> mvn package assembly:assembly deploy
> >>>
> >>> What is happening here is this: First 'assembly:assembly' is
> >>> executed as a standalone plugin goal on the command line, which
> >>> builds the assembly. Then as the second step the 'deploy' phase is
> >>> invoked on your project, and since these two steps are two
> >>> completely separate executions, the second run (deploy) knows
> >>> nothing about the previously build assembly.
> >>>
> >>> What you should do instead, is to attach the assembly-plugin
> >>> execution to the build lifecycle of your project, so it gets
> >>> executed automatically when you run 'mvn deploy' for example. To do
> >>> this modify your plugin configuration like this:
> >>>
> >>> [...]
> >>> <plugin>
> >>> <artifactId>maven-assembly-plugin</artifactId>
> >>> <inherited>false</inherited>
> >>> <configuration>
> >>> <descriptors>
> >>>
> >>> <descriptor>src/main/assembly/developer-assembly.xml</descriptor>
> >>> </descriptors>
> >>> </configuration>
> >>> <executions>
> >>> <execution>
> >>> <id>make-assembly</id>
> >>> <phase>package</phase>
> >>> <goals>
> >>> <goal>single</goal>
> >>> </goals>
> >>> </execution>
> >>> </executions>
> >>> </plugin>
> >>> [...]
> >>>
> >>> This executes the assembly-plugin as part of the 'package' phase of
> >>> the project and attaches the built assembly to your project, the
> >>> deploy plugin then will automatically pick up this additional
> >>> artifact and deploy it to the repository.
> >>>
> >>> -Tim
> >>>
> >>>> and what is happening is that all the child jars are being deployed
> >>>> but
> >>>> the important artifact - the parent 'tar.gz' assembly is not. The
> >>>> interesting thing is that the 'tar.gz' file is being created - just
> >>>> not
> >>>> deployed.
> >>>>
> >>>> Any ideas as to what I am doing wrong?
> >>>>
> >>>> Thanks,
> >>>> Evan Toliopoulos
> >>>> P.S. My parent pom.xml follows...
> >>>> -------------------
> >>>> <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>com.emagineinternational</groupId>
> >>>> <artifactId>sms-transceiver</artifactId>
> >>>> <packaging>pom</packaging>
> >>>> <version>6.5.0-SNAPSHOT</version>
> >>>> <name>sms-transceiver</name>
> >>>> <url>http://maven.apache.org</url>
> >>>>
> >>>> <dependencies>
> >>>> <dependency>
> >>>> <groupId>commons-logging</groupId>
> >>>> <artifactId>commons-logging</artifactId>
> >>>> <version>1.1</version>
> >>>> </dependency>
> >>>> <dependency>
> >>>> <groupId>log4j</groupId>
> >>>> <artifactId>log4j</artifactId>
> >>>> <version>1.2.14</version>
> >>>> </dependency>
> >>>> <dependency>
> >>>> <groupId>junit</groupId>
> >>>> <artifactId>junit</artifactId>
> >>>> <version>4.3.1</version>
> >>>> <scope>test</scope>
> >>>> </dependency>
> >>>> </dependencies>
> >>>>
> >>>> <modules>
> >>>> <module>./sms-transceiver-config-jaxb</module>
> >>>> <module>./sms-transceiver-common</module>
> >>>> <module>./sms-transceiver-config</module>
> >>>> <module>./sms-transceiver-mq</module>
> >>>> <module>./sms-transceiver-db-receiver</module>
> >>>> <module>./sms-transceiver-db-transmitter</module>
> >>>> <module>./sms-transceiver-smpp-receiver</module>
> >>>> <module>./sms-transceiver-smpp-transmitter</module>
> >>>> </modules>
> >>>>
> >>>> <build>
> >>>> <plugins>
> >>>> <plugin>
> >>>> <groupId>org.apache.maven.plugins</groupId>
> >>>> <artifactId>maven-compiler-plugin</artifactId>
> >>>> <configuration>
> >>>> <source>1.6</source>
> >>>> <target>1.6</target>
> >>>> </configuration>
> >>>> </plugin>
> >>>> <plugin>
> >>>> <groupId>org.apache.maven.plugins</groupId>
> >>>> <artifactId>maven-release-plugin</artifactId>
> >>>> <version>2.0-beta-5</version>
> >>>> <configuration>
> >>>>
> >>>>
> <tagBase>svn://svn.emagineinternational.com/tags/sms-transceiver</tagBase>
> >>>>
> >>>> </configuration>
> >>>> </plugin>
> >>>> </plugins>
> >>>> </build>
> >>>>
> >>>>
> >>>> <profiles>
> >>>>
> >>>> <profile>
> >>>> <id>parent-developer-assembly-profile</id>
> >>>> <activation>
> >>>> <property>
> >>>> <name>developer.profile</name>
> >>>> <value>true</value>
> >>>> </property>
> >>>> </activation>
> >>>> <build>
> >>>> <plugins>
> >>>> <plugin>
> >>>> <inherited>false</inherited>
> >>>>
> <artifactId>maven-assembly-plugin</artifactId>
> >>>> <configuration>
> >>>> <descriptors>
> >>>>
> >>>> <descriptor>src/main/assembly/developer-assembly.xml</descriptor>
> >>>> </descriptors>
> >>>> </configuration>
> >>>> </plugin>
> >>>> </plugins>
> >>>> </build>
> >>>> </profile>
> >>>> <profile>
> >>>> <id>parent-release-assembly-profile</id>
> >>>> <activation>
> >>>> <property>
> >>>> <name>release.profile</name>
> >>>> <value>true</value>
> >>>> </property>
> >>>> </activation>
> >>>> <build>
> >>>> <plugins>
> >>>> <plugin>
> >>>> <inherited>false</inherited>
> >>>>
> <artifactId>maven-assembly-plugin</artifactId>
> >>>> <configuration>
> >>>> <descriptors>
> >>>>
> >>>> <descriptor>src/main/assembly/release-assembly.xml</descriptor>
> >>>> </descriptors>
> >>>> </configuration>
> >>>> </plugin>
> >>>> </plugins>
> >>>> </build>
> >>>> </profile>
> >>>> </profiles>
> >>>>
> >>>>
> >>>> <repositories>
> >>>> <repository>
> >>>> <id>EmagineMavenRepository</id>
> >>>> <url>http://angie/maven-repository</url>
> >>>> </repository>
> >>>> </repositories>
> >>>> <distributionManagement>
> >>>> <repository>
> >>>> <id>emagine-repository</id>
> >>>> <name>Emagine Repository</name>
> >>>> <url>scp://angie/opt/emagine-repository/release</url>
> >>>> </repository>
> >>>> <snapshotRepository>
> >>>> <id>emagine-repository</id>
> >>>> <name>Emagine Repository</name>
> >>>> <url>scp://angie/opt/emagine-repository/snapshot</url>
> >>>> </snapshotRepository>
> >>>> </distributionManagement>
> >>>>
> >>>> <scm>
> >>>>
> >>>>
> <connection>scm:svn:svn://svn.emagineinternational.com/trunk/sms-transceiver</connection>
> >>>>
> >>>>
> >>>>
> <developerConnection>scm:svn:svn://svn.emagineinternational.com/trunk/sms-transceiver</developerConnection>
> >>>>
> >>>>
> >>>> <url>svn://svn.emagineinternational.com/trunk/sms-transceiver</url>
> >>>> </scm>
> >>>> </project>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> 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]
> >>>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>