Hi Stephen,
I think I just figured out myself.
I have use the -am argument. So it's like:

mvn package -am -pl ear

Cheers
Ren

On Wed, Oct 14, 2009 at 5:38 PM, Ren <rens...@gmail.com> wrote:
> Hello Stephen,
> I have a similar problem and still couldn't resolve.
> My project has three sub modules: war, ear, and lib, both war and ear
> depend on lib. I made a parent project to include all three modules.
> (A very typical setup I guess).
>
> When I want to build just ear, I uses
>  mvn package -pl ear
> and if I don't have lib module installed in my local repository it
> complains artifact not found.
>
> Is there a way to force maven to look for dependency from other
> sub-modules first before going to local repository?
>
> Cheers,
> Ren
>
>
> On Wed, Sep 9, 2009 at 7:16 PM, Stephen Connolly
> <stephen.alan.conno...@gmail.com> wrote:
>> you need to build at least as far as the package phase of the lifecycle...
>> and you might even want to go as far as install...
>>
>> the jar file is not built until the package phase, so you will get these
>> errors if you do not go as far as package..
>>
>> also if you do builds of sub modules independently, then you will need to go
>> as far as install as package will only keep the jar artifact within the
>> reactor, and once maven stops running, that reactor is thrown away, so that
>> the next build will not have access to the artifact.  going as far as
>> install will push the reactor artifacts into the local repository, which
>> then makes the artifacts available to subsequent maven invokations
>>
>> -Stephen
>>
>> 2009/9/9 Thomas Jonsson <jonsson.tho...@gmail.com>
>>
>>> Hi!
>>>
>>> No, I'm buiding from project root.
>>> I just tested with Maven 2.0.10 with no compilation failures. But if I
>>> remove the core articfact from local repo it complains about it's
>>> missing.
>>>
>>> /Thomas
>>>
>>>
>>> 2009/9/9 Anders Hammar <and...@hammar.net>:
>>> > I guess you're building from the 'integration' project, not the
>>> aggregating
>>> > project (ejbs)?
>>> > If that's the case, your scenario is the expected way for it to work.
>>> Your
>>> > dependency is to an artifact (the built jar), not a Maven project on your
>>> > local disk. So you need to build the core project first. If you build
>>> from
>>> > the aggregating project it will be handled correctly. Or you use some
>>> tool
>>> > to help you (m2eclipse).
>>> > If you find yourself updating updating two different projects, then your
>>> > separation might not be right.
>>> >
>>> > /Anders
>>> >
>>> > On Wed, Sep 9, 2009 at 09:17, Thomas Jonsson <jonsson.tho...@gmail.com
>>> >wrote:
>>> >
>>> >> Hi!
>>> >>
>>> >> I was just wondering if have misunderstood the basics of Maven and
>>> >> dependencies.
>>> >> I have a project according to this structure:
>>> >>
>>> >> ear
>>> >> ejbs
>>> >>   core
>>> >>   integration
>>> >> webapps
>>> >>   webapp
>>> >>
>>> >> integration is dependent on core.
>>> >>
>>> >> from pom in integration.xml:
>>> >> <dependency>
>>> >>        <groupId>com.jf.application.ejbs</groupId>
>>> >>        <artifactId>core</artifactId>
>>> >>        <version>${pom.version}</version>
>>> >>        <scope>compile</scope>
>>> >> </dependency>
>>> >>
>>> >> pom in ejbs:
>>> >>
>>> >> <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.jf.application</groupId>
>>> >>   <artifactId>ejbs</artifactId>
>>> >>   <packaging>pom</packaging>
>>> >>   <name>ejbs</name>
>>> >>   <parent>
>>> >>      <groupId>com.jf</groupId>
>>> >>      <artifactId>application</artifactId>
>>> >>      <version>2010v-SNAPSHOT</version>
>>> >>   </parent>
>>> >>
>>> >>   <modules>
>>> >>      <module>core</module>
>>> >>      <module>integration</module>
>>> >>    </modules>
>>> >> </project>
>>> >>
>>> >> When a run mvn clean:compile in the project root a I get a compilation
>>> >> error saying that a method is missing. I recently added the method in
>>> >> one of the classes in the core project. When I debug a see that the
>>> >> classpath for core is the installed artifact in the local maven repo
>>> >> and not the classpath to core in the project. Should it be this way?
>>> >> I think it seems silly that I have to install the core artifact first.
>>> >>
>>> >> I'm running Maven 2.2.1 on windows.
>>> >>
>>> >> Any ideas?
>>> >>
>>> >> Best regards,
>>> >> Thomas
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>> >> For additional commands, e-mail: users-h...@maven.apache.org
>>> >>
>>> >>
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>
>>>
>>
>
>
>
> --
> Kind Regards,
> Ren
>



-- 
Kind Regards,
Ren

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to