I believe the problem is that you're not doing the assemblying within the reactor, i.e. you don't have the assembly-plugin bound to the lifecycle but execute that plugin directly. If you're only executing "mvn package" the artifacts will not be installed to the local repo.
So create a binding for the assembly, which is what you should have as that will be what a Maven used would expect. You should normally never need to specify several goals on the command line, but just a phase. /Anders On Tue, May 24, 2011 at 21:32, Randall Fidler < [email protected]> wrote: > Hello, > > > > Looked into an issue I've encountered with assembly not using > snapshots correctly. I believe it's due to Maven 3.0.3 restricting > libraries to "configured" repositories only, but not sure why the > assembly plugin doesn't have the repository in question "configured" for > use. > > > > I've basically got... > > > > A > > |----------B <-- assembly is run from here (mvn package > assembly:assembly -Dmaven.test.skip=true) > > | > > ---------C > > ---------D > > > > > > E > > > > Assembly puts all the sub projects artifacts into a zip file with some > organization, fairly simple. Projects C, D require project E, which is > listed as 3.1.0.0_b1-SNAPSHOT as a dependency. During compile, running > tests, etc, project E is downloaded from our repo (we use Artifactory) > and all is well. When the assembly pukes, it says that it cannot find > project E version 3.1.0.0_b1-SNAPSHOT and yet the dependency is in the > local .m2. I have the following repositories setup in the project A pom > file: > > > > <repositories> > > <repository> > > <id>central</id> > > <url>http://build.x.com:8080/artifactory/repo</url> > > <snapshots> > > <enabled>false</enabled> > > </snapshots> > > </repository> > > <repository> > > <id>snapshots</id> > > <url>http://build.x.com:8080/artifactory/repo</url> > > <releases> > > <enabled>false</enabled> > > </releases> > > </repository> > > </repositories> > > > > > > Like I said, if I remove the artifact and try to run assembly, it will > download the file (for package goal) but then say it can't find it for > assembly. It did suggest to mvn install the file, which I did and to my > surprise assembly then worked. Looking further into it, it appears that > "local repo tracking" feature that's new to Maven 3.0.3 that's causing > the issue. For the project E artifact, I noticed when I deleted it from > local .m2 and did a mvn install, it created a _maven.repositories file > that did NOT specify the repository (assembly worked fine with this). > So to be clear, when I did mvn install I get a _maven.repository file > with E-3.1.0.0_b1-SNAPSHOT.jar>= and when assembly fails, that same file > will have E-3.1.0.0_b1-SNAPSHOT.jar>snapshots= and I do understand why > it has snapshots listed as "normally" it downloads the artfact from our > artifactory repo which, according to repositories entries (above) is > called snapshots. > > > > What I don't understand here is why doesn't the assembly plugin think > it's ok for it to use artifacts from the snapshots repository? > > > > So to recap... > > > > If I remove project E from local .m2, manually install project E > artifact, assembly works fine (no maven repository is associated with > project E artifact in local .m2). > > > > If I remove project E from local .m2, project E artifact is downloaded > from repo and assembly fails. Project E is listed as coming from > snapshots repository. > > > > Repository scope issue somehow between main build "context" and > assembly? > > > > Sugestions? Thoughts? > > > > Thanks!!!! > > > > Randall > >
