The user list is here [email protected] and you can subscribe to discuss 
your issues using [email protected].

On Mar 10, 2010, at 5:45 AM, Trojan, Krzysztof wrote:

> Dear Sir,
>  
> First of all I would like to apologize for writing to you directly. I have 
> inadequate information about roles and responsibilities in the Maven project, 
> so I write to You, as Maven PMC member and project founder, hoping you can 
> distribute my email to the right people.
>  
> I have been among Maven users for some time now. I am responsible for moving 
> a really big banking solution build to Maven, that we hoped to solve a number 
> of manageability problems we have had in the past. We have found Maven to 
> suit our needs very well, but we are sometimes struggling with Maven ever 
> changing behaviour and APIs. Having said that, Maven still is our tool of 
> choice.
>  
> However, we have found that Maven 3.0 is moving in a direction that we find a 
> little bit dangerous for us. We have some arguments against proposed changes, 
> and we kindly ask to open a discussion. In very short words, Maven 3.0 tries 
> to restrict usage of expressions evaluated during build in some parts of the 
> pom.xml (or a project descriptor, more generically speaking). We can see the 
> warning saying something like “using an expression here is a BAD BAD thing, 
> it will threaten stability of your build. We may stop supporting this one 
> day”. While we can agree that build stability may be impacted, in the end it 
> is MY (the developer) responsibility to avoid it. Build stability may be 
> impacted by 10 other things you have no control over.
>  
> Here is an extract:
> [WARNING] Some problems were encountered while building the effective model 
> for com.fnis.crb:BigBankingProject:jar:${BigBankingProject.module.version}
> [WARNING] 'version' contains an expression but should be a constant. @ 
> com.fnis.crb:BigBankingProject:${BigBankingProject.module.version}, 
> C:\Workspaces\Corebank_Maven\BigBankingProject\pom.xml
>  
> A little bit further down in the log there is
> [WARNING] It is highly recommended to fix these problems because they 
> threaten the stability of your build.
> [WARNING]
> [WARNING] For this reason, future Maven versions might no longer support 
> building such malformed projects.
> [WARNING]
>  
> If you want to warn me – fine, thank you, I have been warned. If you have the 
> behaviour configurable (like being able to switch on some “relaxed” mode) – 
> fine. But if the tool says: “you are stupid, but we have a cure, we will 
> prevent you from doing those dangerous things …” it is a complete 
> misunderstanding. The flexibility is ALWAYS a good thing, and the fact that 
> there will be people who can screw things up badly just because they can, 
> cannot be the justification to remove flexibility in favour of some “ONLY 
> GOOD WAY”. And expressions are one of the ways of providing flexibility.
>  
> I am unsure if the restriction the warning mention ('version' contains an 
> expression but should be a constant) is only for the main artefact defined in 
> pom.xml, or also applies to dependencies (can I have an expression in 
> dependency version ? I know from the discussions documented in the Internet 
> you were concerned with having a version not resolved to a concrete value – 
> you also mentioned version ranges as potential threat).
>  
> If you want to hear the exact use case, I can elaborate it, but it is way too 
> complicated for an initial email.
>  
> The main idea behind our solution is that we inject properties into the build 
> specifying the versions of dependencies we want to use. Imagine modules A, B 
> and C;  A depends on B, and B depends on C. Now we have a feature branch that 
> changes A and C … my way is to use A and C from branch, but B from trunk. I 
> want to build A, it references B from trunk … but as B references C, I need a 
> way to tell B to use C built from branch – here is where expression in the 
> <version> is used, B knows to depend on C in “some version” 
> (${C.module.version}), the actual value of ${C.module.version} is injected, 
> so it gets resolved to correct version in the repository. I hope I have made 
> it clear enough … There are several similar use cases possible, but only if 
> such “deferred dependency binding” is possible. I kindly request not to 
> forbid it, or at least add some switch that enables this.
>  
> Maybe some special switch to Maven ? Or a property that is treated specially, 
> like –Zmy.versionprop=XXX instead of –Dmy.version.property=XXX. If I use –Z 
> (just an example, may be anything you want), just assume I know what I am 
> doing, if it is found in the version … let it be. Of course this is all 
> oversimplification, we would need to find a workable solution for embedded 
> Maven, and to define this properties in profiles … but I hope you get the 
> general idea.
>  
> I just would like to open a discussion, that I hope will influence the 
> direction Maven is going to.
>  
> Kind regards,
> Krzysztof Trojan
> Senior Application Technician
> FIS Technology Services (Poland)
> Al. Jerozolimskie 81, 02-001 Warsaw, Poland
> [email protected]
> Tel: +48 601 98 96 96
> Fax: +48 22 695 05 51
> www.fisglobal.com
> <image001.jpg>
> This e-mail contains privileged and confidential information intended for the 
> use of the addressees named above. If you are not the intended recipient of 
> this e-mail, you are hereby notified that you must not disseminate it, copy 
> it or take any action in respect of any information contained in it. If you 
> have received this e-mail in error please notify the sender immediately by 
> e-mail and destroy this e-mail and its attachments
>  
>  
> _____________
> 
> The information contained in this message is proprietary and/or confidential. 
> If you are not the intended recipient, please: (i) delete the message and all 
> copies; (ii) do not disclose, distribute or use the message in any manner; 
> and (iii) notify the sender immediately. In addition, please be aware that 
> any message addressed to our domain is subject to archiving and review by 
> persons other than the intended recipient. Thank you.
> _____________

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
http://twitter.com/jvanzyl
----------------------------------------------------------

Reply via email to