Brian,
Thanks for the quick reply. I think based on your email I'm very
close, but not quite there....
On Feb 7, 2008, at 1:38 PM, Brian E. Fox wrote:
Put both projects under a common parent, then add the tar.bz2 as a
dependency of foo-integration-tests.
Ok, thats basically what I have, except I'm unclear on how to make the
tar.bz2 a dependency of the integration project (as opposed to the jar
that is also created).
I have this in the integration test project, but I don't know how to
specify the tar.bz2 as opposed to the jar:
<dependency>
<groupId>com.kiva</groupId>
<artifactId>foo-core</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
Then change dependency:unpack to dependency:unpack-dependencies and
set the configuration to include only this artifact (by group or
artifact, type etc).
I have the following, is that what you mean?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>extract-foo</id>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.kiva</groupId>
<artifactId>foo-core</artifactId>
<version>${project.version}</version>
<type>tar.bz2</type>
<outputDirectory>${project.build.directory}/
foo</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Then if you run the parent, when it gets to the integration tests,
if you have done at least mvn package, it will find the jar in the
target folder.
Given the above, when I run 'mvn integration-test' from the top-level
pom, I get the following, as if it was looking in my local or remote
repository for the tar.bz2. Since it already executed the package
phase, the tar.bz2 was correctly created however..
[INFO]
------------------------------------------------------------------------
[INFO] [dependency:unpack {execution: extract-mhs}]
[INFO] Configured Artifact: com.kiva:foo-core:server:2.2.0-
SNAPSHOT:tar.bz2
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: com.kiva
ArtifactId: foo-core
Version: 2.2.0-SNAPSHOT
Reason: Unable to download the artifact from any repository
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=com.kiva -DartifactId=foo-core
-Dversion=2.2.0-SNAPSHOT -Dclassifier=server -Dpackaging=tar.bz2 -
Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file
there:
mvn deploy:deploy-file -DgroupId=com.kiva -DartifactId=foo-core -
Dversion=2.2.0-SNAPSHOT -Dclassifier=server -Dpackaging=tar.bz2 -
Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
I guess I'm missing one last step....
-Josh
From: Joshua Pollak [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 07, 2008 9:43 AM
To: [email protected]
Subject: [mojo-user] Integration testing a project?
Hello,
I have a project called foo with two modules, foo-core and foo-
integration-tests. foo-core outputs a tar.bz2 as its primary
artifact. I'd like to setup foo-integration-tests to extract this
artifact and run some tests on it via junit.
Currently I'm doing this by using the maven-dependency-plugin to
explicitly find the foo-core tar.bz2 snapshot artifact in the local
repository and extract it. But this requires manually running 'mvn
install' in the foo-core project.
I'd like to be able to do 'mvn integration-test' from the upper
level 'uber-pom' directory, just called 'foo'.
Can anyone help?
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970
--
Joshua ChaitinPollak | Software Engineer
Kiva Systems, Inc., 225 Wildwood Ave, Woburn, MA 01970