You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Richard Allen <ri...@gtri.gatech.edu> on 2007/05/22 20:44:25 UTC

[m2] Specify s on command line?

We have a good size multi-module build. To reduce the development cycle 
time I would like to be able to say to Maven only include these modules 
in the build. That way we could reduce the amount of time it takes to 
build the project when testing only a single module. Is that possible?

Thanks,
Richard

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


Re: [m2] Specify s on command line?

Posted by Richard Allen <ri...@gtri.gatech.edu>.
Thanks for the suggestions! Multiple profiles seems like the easiest to 
setup, but incurs a little more maintenance.

-Richard


Roland Asmann wrote:
> I found an example of what I mean. It's one of our first m2 try-outs which 
> used a flat directory-structure, but it serves well enough as an example.
>
> <?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>at.cfc.hermes.shared</groupId>
> 	<artifactId>hermes</artifactId>
> 	<packaging>pom</packaging>
> 	<name>Hermes</name>
> 	<version>0.0.1</version>
> 	<profiles>
> 		<profile>
> 			<id>person</id>
> 			<modules>
> 				<module>../hermes-logging</module>
> 				<module>../hermes-usecase-ui</module>
> 				<module>../hermes-geography-link</module>
> 				<module>../hermes-security-link</module>
> 				<module>../hermes-person</module>
> 			</modules>
> 		</profile>
> 		<profile>
> 			<id>geography-link</id>
> 			<modules>
> 				<module>../hermes-logging</module>
> 				<module>../hermes-usecase-ui</module>
> 				<module>../hermes-geography</module>
> 				<module>../hermes-geography-link</module>
> 			</modules>
> 		</profile>
> 		<profile>
> 			<id>geography</id>
> 			<modules>
> 				<module>../hermes-logging</module>
> 				<module>../hermes-usecase-ui</module>
> 				<module>../hermes-geography</module>
> 			</modules>
> 		</profile>
> 		<profile>
> 			<id>security-link</id>
> 			<modules>
> 				<module>../hermes-logging</module>
> 				<module>../hermes-usecase-ui</module>
> 				<module>../hermes-security-link</module>
> 			</modules>
> 		</profile>
> 	</profiles>
> </project>
>
> Now, I had several default launches (in Eclipse), that triggered e.g.:
> - mvn -P person
> - mvn -P person,geography
> - mvn -P person,security-link
>
> As you can see, some modules are defined in more than one profile, this should 
> however be no problem. At least, it wasn't in maven 2.0.3 (or 2.0.2, not sure 
> where we started) and I think it will still work in the latest version.
>
> Good luck!
>
>
> On Tuesday 22 May 2007 22:14, Roland Asmann wrote:
>   
>> A workaround for this 'problem' could be to specify a couple (a lot?) of
>> profiles, that contain the modules you need to combine. You can then run
>> maven with the selected profiles, building only those modules you declared
>> in the profiles.
>> Personally, I'd at least make sure that all modules that have dependencies
>> to eachother are grouped inside a profile. Not necessary if your local or
>> remote repo has a version, but at least you won't be wondering why certain
>> changes 'don't work' when you forget to build a module!
>>
>> On Tuesday 22 May 2007 21:39, Steven Rowe wrote:
>>     
>>> Hi Richard,
>>>
>>> As far as I know, Maven does not have direct support for what you want.
>>>
>>> But lots of people have been asking for just this functionality recently.
>>>
>>> See <http://www.nabble.com/Specify-a-dynamic-profile-t3754208s177.html>
>>> for a discussion of some workarounds.
>>>
>>> Steve
>>>
>>> Richard Allen wrote:
>>>       
>>>> We have a good size multi-module build. To reduce the development cycle
>>>> time I would like to be able to say to Maven only include these modules
>>>> in the build. That way we could reduce the amount of time it takes to
>>>> build the project when testing only a single module. Is that possible?
>>>>
>>>> Thanks,
>>>> Richard
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>         
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>       
>
>   

Re: [m2] Specify s on command line?

Posted by Roland Asmann <Ro...@cfc.at>.
I found an example of what I mean. It's one of our first m2 try-outs which 
used a flat directory-structure, but it serves well enough as an example.

<?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>at.cfc.hermes.shared</groupId>
	<artifactId>hermes</artifactId>
	<packaging>pom</packaging>
	<name>Hermes</name>
	<version>0.0.1</version>
	<profiles>
		<profile>
			<id>person</id>
			<modules>
				<module>../hermes-logging</module>
				<module>../hermes-usecase-ui</module>
				<module>../hermes-geography-link</module>
				<module>../hermes-security-link</module>
				<module>../hermes-person</module>
			</modules>
		</profile>
		<profile>
			<id>geography-link</id>
			<modules>
				<module>../hermes-logging</module>
				<module>../hermes-usecase-ui</module>
				<module>../hermes-geography</module>
				<module>../hermes-geography-link</module>
			</modules>
		</profile>
		<profile>
			<id>geography</id>
			<modules>
				<module>../hermes-logging</module>
				<module>../hermes-usecase-ui</module>
				<module>../hermes-geography</module>
			</modules>
		</profile>
		<profile>
			<id>security-link</id>
			<modules>
				<module>../hermes-logging</module>
				<module>../hermes-usecase-ui</module>
				<module>../hermes-security-link</module>
			</modules>
		</profile>
	</profiles>
</project>

Now, I had several default launches (in Eclipse), that triggered e.g.:
- mvn -P person
- mvn -P person,geography
- mvn -P person,security-link

As you can see, some modules are defined in more than one profile, this should 
however be no problem. At least, it wasn't in maven 2.0.3 (or 2.0.2, not sure 
where we started) and I think it will still work in the latest version.

Good luck!


On Tuesday 22 May 2007 22:14, Roland Asmann wrote:
> A workaround for this 'problem' could be to specify a couple (a lot?) of
> profiles, that contain the modules you need to combine. You can then run
> maven with the selected profiles, building only those modules you declared
> in the profiles.
> Personally, I'd at least make sure that all modules that have dependencies
> to eachother are grouped inside a profile. Not necessary if your local or
> remote repo has a version, but at least you won't be wondering why certain
> changes 'don't work' when you forget to build a module!
>
> On Tuesday 22 May 2007 21:39, Steven Rowe wrote:
> > Hi Richard,
> >
> > As far as I know, Maven does not have direct support for what you want.
> >
> > But lots of people have been asking for just this functionality recently.
> >
> > See <http://www.nabble.com/Specify-a-dynamic-profile-t3754208s177.html>
> > for a discussion of some workarounds.
> >
> > Steve
> >
> > Richard Allen wrote:
> > > We have a good size multi-module build. To reduce the development cycle
> > > time I would like to be able to say to Maven only include these modules
> > > in the build. That way we could reduce the amount of time it takes to
> > > build the project when testing only a single module. Is that possible?
> > >
> > > Thanks,
> > > Richard
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org

-- 
Roland Asmann

CFC Informationssysteme Entwicklungsgesellschaft m.b.H
Bäckerstrasse 1/2/7
A-1010 Wien
FN 266155f, Handelsgericht Wien

Tel.: +43/1/513 88 77 - 27
Fax.: +43/1/513 88 62
Email: Roland.Asmann@cfc.at
Web: www.cfc.at

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


Re: [m2] Specify s on command line?

Posted by Roland Asmann <Ro...@cfc.at>.
A workaround for this 'problem' could be to specify a couple (a lot?) of 
profiles, that contain the modules you need to combine. You can then run 
maven with the selected profiles, building only those modules you declared in 
the profiles.
Personally, I'd at least make sure that all modules that have dependencies to 
eachother are grouped inside a profile. Not necessary if your local or remote 
repo has a version, but at least you won't be wondering why certain 
changes 'don't work' when you forget to build a module!


On Tuesday 22 May 2007 21:39, Steven Rowe wrote:
> Hi Richard,
>
> As far as I know, Maven does not have direct support for what you want.
>
> But lots of people have been asking for just this functionality recently.
>
> See <http://www.nabble.com/Specify-a-dynamic-profile-t3754208s177.html>
> for a discussion of some workarounds.
>
> Steve
>
> Richard Allen wrote:
> > We have a good size multi-module build. To reduce the development cycle
> > time I would like to be able to say to Maven only include these modules
> > in the build. That way we could reduce the amount of time it takes to
> > build the project when testing only a single module. Is that possible?
> >
> > Thanks,
> > Richard
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org

-- 
Roland Asmann

CFC Informationssysteme Entwicklungsgesellschaft m.b.H
Bäckerstrasse 1/2/7
A-1010 Wien
FN 266155f, Handelsgericht Wien

Tel.: +43/1/513 88 77 - 27
Fax.: +43/1/513 88 62
Email: Roland.Asmann@cfc.at
Web: www.cfc.at

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


Re: [m2] Specify s on command line?

Posted by Steven Rowe <sa...@syr.edu>.
Hi Richard,

As far as I know, Maven does not have direct support for what you want.

But lots of people have been asking for just this functionality recently.

See <http://www.nabble.com/Specify-a-dynamic-profile-t3754208s177.html>
for a discussion of some workarounds.

Steve

Richard Allen wrote:
> We have a good size multi-module build. To reduce the development cycle
> time I would like to be able to say to Maven only include these modules
> in the build. That way we could reduce the amount of time it takes to
> build the project when testing only a single module. Is that possible?
> 
> Thanks,
> Richard
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 


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