Does Maven2 have support for Maven1 POMS (specifically Id vs ArtifactId

2006-07-01 Thread Colin Sampaleanu
Inside the Maven2 repo, this pom for SLF4J 1.0 appears to be in Maven2 
format:
 
http://www.ibiblio.org/maven2/org/slf4j/slf4j-log4j12/1.0/slf4j-log4j12-1.0.pom

but this one for SLF4J 1.0.1 appears to be in Maven1 format:
 
http://www.ibiblio.org/maven2/org/slf4j/slf4j-log4j12/1.0.1/slf4j-log4j12-1.0.1.pom


I'm trying to figure out if Maven2 is still capable of using the Maven1 
format (I presume not, it's not legal according to the XSD), or if 
somebody messed up and just checked in a Maven1 format POM in the Maven 
2 repo.


Colin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How are people getting around the lack of custom scopes?

2006-04-30 Thread Colin Sampaleanu
Thanks, I've seen that blog entry in the past, and even took part in a 
discussion on maven-dev more than a year ago now.


(btw, I don't think Brett's assertion in the comments that Maven's 
profiles are like Ivy's configs is accurate. Ivy's configs are much more 
like configurable scopes for the most part, as the actual config names 
can be transitive too, and you can pull into one config another 'x' 
configs from a dependency. What _is_ nonstandardized in ivy is any set 
of common config names. This is generally not an issue though for common 
scopes, as the reality is that for any of your dependencies you are 
generally interested only in their runtime scopes ('default' plus any 
optional ones), their compile and test configs, whatever they are 
called, do not need to be pulled in anyway, and certainly not 
transitively, so it doesn't matter what each project calls them. The 
only place you feel the lack of a convention is for pulling in sources. 
It would be nice to be able to pull in sources.)


Anyway,  I was hoping that after some usage of Maven2 in anger, some 
people had come up with a solution to this need (a clean way to handle 
optional dependencies), which is definitely there for some cases


Regards,
Colin

On 4/30/2006 12:54 PM, Eric Redmond wrote:

This is the same old debate about scope versus configuration.

Check out Xavier Hanin's blog, specifically the comments.
http://jroller.com/page/xavierhanin?entry=maven_features_comparison

I agree with you, somewhat. The ability to override a dependency in M2 is
far more verbose. In contrast, Ivy forces you configure your desired
classpath, where M2 has pre-defined scopes, and I don't want to lose that
pre-defined power. But l also like the concept of configurations,
specifically for cases like Spring. I would like to see something like
custom configurations, perhaps ID'd inclusions? In any case, most 
anything

useful would require a POM change, which I wouldn't imagine would happen
soon.


Spring framework could define dependency blocks with ID.

 

   *javax.faces*

   jsf-api

   jsf

 


Then users of Spring framework may include them:

 

   *org.springframework*

   spring-webflow

   default,jsf

 

Eric

On 4/30/06, Colin Sampaleanu <[EMAIL PROTECTED]> wrote:


I am curious how heavy Maven2 users are getting around the lack of
custom scopes.

Profiles seem to fill the need sometimes, allowing you to produce a
module (jar file) that is specific to a particular profile, having
dependencies specific to that profile.

This assumes you are actually ok with having a separate jar file for
each profile.

But how are people handling the publishing of _one_ module which in use
may have various sets of runtime dependencies which need to be combined,
for the user of that module?

As an example, consider Spring Web Flow, published as
spring-webflow.jar. It has a set of base runtime dependencies which are
always needed. It also has some runtime dependencies that are needed
only for use with Spring MVC. It also has some runtime dependencies
which are needed only for use with Struts. And some only for JSF.
Compile time dependencies are mostly a combination of all of these, btw.

This is pretty trivial to handle with the Ivy dependency manager (used
for Spring Web Flow right now), since for a module's published
dependencies, Ivy allows you to define different 'configurations',
basically custom scopes. So a module can publish any number of
configurations, and another module depending on yours would specify any
of them they need. The config declaration for Spring Web Flow looks like
this:


   
   
   
   
   
   
   
   
   


This just declares the configuration names and visibility, then actual
dependencies are declared and added into one or more configs.

A project needing Spring Web Flow including the JSF capabilities would
declare that dependency as
   
basically it is saying, for it's own 'global' config, it needs Spring
Web Flow's 'default' and 'jsf' configs.

How are people handling this kind of need in Maven. I am not happy with
the options I see:
- use profiles: this implies publishing a separate jar for each
profile, not something I wish to do
- declare minimal dependencies and force people to manually include:
this implies that a module like spring web flow would declare only the
minimal sets of dependencies, and then users of the module would
manually add in other dependencies. This seems unacceptable.
- declare all possible dependencies and force people to manually
exclude: this implies a module like Spring Web Flow would declare all
dependencies, and then users of the module would manually exclude some
dependencies. This seems unacceptable.

There are lots of projects out there which have optional dependencies
(hibernate, etc.). Short of manual inclusions/exclusions, how are people
handling this in M

Re: How are people getting around the lack of custom scopes?

2006-04-30 Thread Colin Sampaleanu
This approach is reasonable to some point, but it can start getting 
ridiculous too. It's a question of granularity and how far you wish to 
take it. There are a number of projects out there which have a lot of 
optional dependencies. Spring Web Flow aside, Spring Framework itself is 
one of them, Hibernate another, etc, and there are cases where we talk 
about multiple optional dependencies that may optionally be combined 
with each other, leading to an explosion of jars.


Your suggested approach implies that library jar packaging be completely 
driven by dependencies used, i.e. have a one to one correlation; this is 
just not possible, or really desirable sometimes.


Colin

On 4/30/2006 12:03 PM, Arik Kfir wrote:

Personally, I don't like the approach you specified. If I have a project
which MIGHT use project X, Y or Z, I would expect that project to be 
split

to four jars: project-core, project-x, project-y and project-z. The
project-core would require a set of dependencies that are always 
needed, the
project-x would require project-core (and its dependencies) along with 
the X

dependency, and so on...

I think the maven approach is far more elegant because you always know
exactly what you have and what you need.

just my 2 cents

On 4/30/06, Colin Sampaleanu <[EMAIL PROTECTED]> wrote:


I am curious how heavy Maven2 users are getting around the lack of
custom scopes.

Profiles seem to fill the need sometimes, allowing you to produce a
module (jar file) that is specific to a particular profile, having
dependencies specific to that profile.

This assumes you are actually ok with having a separate jar file for
each profile.

But how are people handling the publishing of _one_ module which in use
may have various sets of runtime dependencies which need to be combined,
for the user of that module?

As an example, consider Spring Web Flow, published as
spring-webflow.jar. It has a set of base runtime dependencies which are
always needed. It also has some runtime dependencies that are needed
only for use with Spring MVC. It also has some runtime dependencies
which are needed only for use with Struts. And some only for JSF.
Compile time dependencies are mostly a combination of all of these, btw.

This is pretty trivial to handle with the Ivy dependency manager (used
for Spring Web Flow right now), since for a module's published
dependencies, Ivy allows you to define different 'configurations',
basically custom scopes. So a module can publish any number of
configurations, and another module depending on yours would specify any
of them they need. The config declaration for Spring Web Flow looks like
this:


   
   
   
   
   
   
   
   
   


This just declares the configuration names and visibility, then actual
dependencies are declared and added into one or more configs.

A project needing Spring Web Flow including the JSF capabilities would
declare that dependency as
   
basically it is saying, for it's own 'global' config, it needs Spring
Web Flow's 'default' and 'jsf' configs.

How are people handling this kind of need in Maven. I am not happy with
the options I see:
- use profiles: this implies publishing a separate jar for each
profile, not something I wish to do
- declare minimal dependencies and force people to manually include:
this implies that a module like spring web flow would declare only the
minimal sets of dependencies, and then users of the module would
manually add in other dependencies. This seems unacceptable.
- declare all possible dependencies and force people to manually
exclude: this implies a module like Spring Web Flow would declare all
dependencies, and then users of the module would manually exclude some
dependencies. This seems unacceptable.

There are lots of projects out there which have optional dependencies
(hibernate, etc.). Short of manual inclusions/exclusions, how are people
handling this in Maven2?

Regards,
Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
__
Cheers,
 Arik Kfir   [EMAIL PROTECTED]
 Linux user, number 415067 - http://counter.li.org/
 http://corleon.dnsalias.org



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



How are people getting around the lack of custom scopes?

2006-04-30 Thread Colin Sampaleanu
I am curious how heavy Maven2 users are getting around the lack of 
custom scopes.


Profiles seem to fill the need sometimes, allowing you to produce a 
module (jar file) that is specific to a particular profile, having 
dependencies specific to that profile.


This assumes you are actually ok with having a separate jar file for 
each profile.


But how are people handling the publishing of _one_ module which in use 
may have various sets of runtime dependencies which need to be combined, 
for the user of that module?


As an example, consider Spring Web Flow, published as 
spring-webflow.jar. It has a set of base runtime dependencies which are 
always needed. It also has some runtime dependencies that are needed 
only for use with Spring MVC. It also has some runtime dependencies 
which are needed only for use with Struts. And some only for JSF.   
Compile time dependencies are mostly a combination of all of these, btw.


This is pretty trivial to handle with the Ivy dependency manager (used 
for Spring Web Flow right now), since for a module's published 
dependencies, Ivy allows you to define different 'configurations', 
basically custom scopes. So a module can publish any number of 
configurations, and another module depending on yours would specify any 
of them they need. The config declaration for Spring Web Flow looks like 
this:



  
  
  
  
  
  
  
  
  


This just declares the configuration names and visibility, then actual 
dependencies are declared and added into one or more configs.


A project needing Spring Web Flow including the JSF capabilities would 
declare that dependency as

  
basically it is saying, for it's own 'global' config, it needs Spring 
Web Flow's 'default' and 'jsf' configs.


How are people handling this kind of need in Maven. I am not happy with 
the options I see:
- use profiles: this implies publishing a separate jar for each 
profile, not something I wish to do
- declare minimal dependencies and force people to manually include: 
this implies that a module like spring web flow would declare only the 
minimal sets of dependencies, and then users of the module would 
manually add in other dependencies. This seems unacceptable.
- declare all possible dependencies and force people to manually 
exclude: this implies a module like Spring Web Flow would declare all 
dependencies, and then users of the module would manually exclude some 
dependencies. This seems unacceptable.


There are lots of projects out there which have optional dependencies 
(hibernate, etc.). Short of manual inclusions/exclusions, how are people 
handling this in Maven2?


Regards,
Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [m2] Is there any way to override the default filter pattern for resources?

2006-04-30 Thread Colin Sampaleanu

Carlos,

It's not just JSPs first of all. ${} is a pretty common syntax used 
for various templating and expression evaluation needs. For example, you 
might see that in a Spring application context file when somebody uses 
PropertyPlaceHolderConfigurer to externalize some values to a separate 
properties files. Or OSWorkFlow uses it to evaluate expressions in 
workflow definitions. There are lots of other cases...


So there's a conflict here. There's a general need to do filtering while 
you build, and I've certainly worked on plenty of projects in the past 
where we filtered the entire set of JSPs (or whatever the templates 
were), and pretty well all non-class files in the app since in ant at 
least (and Maven may be just as efficient) you didn't pay a huge penalty 
for copying with filtering.


As for the use cases for filtering during the build, we're talking about 
having different dev/staging/production profiles, or very lightweight 
'branding' type changes that don't warrant entirely different template 
files, etc. So this is is things like properties files with JDBC 
properties, server addresses, etc. It's also JSP/template pages for the 
web site, and the web.xml file. It applies to various lib specific xml 
files.


Given the need, I just consider it completely unacceptable 
(irresponsible really) to rely on luck that tokens used for build-time 
filtering will not conflict with the same tokens used by some run time 
(post build-time) system or library that uses the same ${xxx} syntax. 
It's a complete non-issue with ant, as you can pick whatever token 
replacement syntax you need.


Colin

On 4/29/2006 7:54 PM, Carlos Sanchez wrote:

Colin, can you explain what's the use case here?

I don't see the probelm with JSPs because you would at most filter the
web.xml setting a parameter that is later accessed at runtime from the
jsps. I can't think about a use case where you would need to filter
all the jsps at build time.

On 4/29/06, Colin Sampaleanu <[EMAIL PROTECTED]> wrote:

Hi,

When turning on filtering for resources in Maven2, is there any way to
override the default filter string pattern of '${token}'?  I can't find
any mention of any way to customize this, in any docs.

The use of ${token} as a token is IMHO a really bad choice, given the
fact that it's such a common token replacement syntax in various page
templating technologies like JSPs. These are exactly the kinds of files
likely to be copied around as resources, leading to all sorts of
potential conflicts in filter instances meant to be replaced by Maven,
and instances meant for the JSP engine.

Regards,
Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [m2] Is there any way to override the default filter pattern for resources?

2006-04-29 Thread Colin Sampaleanu

Wayne,

This is not really true any longer, as of this fix:
 http://jira.codehaus.org/browse/MWAR-12
you can filter with the WAR task too.

In any case, I was making a general point about conflicting with 
application template files of any sort (not just JSPs) that use the 
${} syntax. It's a very common syntax...


Regards,
Colin

On 4/29/2006 4:56 PM, Wayne Fay wrote:


JSP files etc are not "resources" but rather should be stored in the
/src/main/webapp folder and thus not processed as "resources".

So I'll disagree with your statement. And I have no idea how/where to
modify the "default filter string pattern" if it is even possible.

Wayne

On 4/29/06, Colin Sampaleanu <[EMAIL PROTECTED]> wrote:


Hi,

When turning on filtering for resources in Maven2, is there any way to
override the default filter string pattern of '${token}'?  I can't find
any mention of any way to customize this, in any docs.

The use of ${token} as a token is IMHO a really bad choice, given the
fact that it's such a common token replacement syntax in various page
templating technologies like JSPs. These are exactly the kinds of files
likely to be copied around as resources, leading to all sorts of
potential conflicts in filter instances meant to be replaced by Maven,
and instances meant for the JSP engine.

Regards,
Colin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [m2] Is there any way to override the default filter pattern for resources?

2006-04-29 Thread Colin Sampaleanu

On 4/29/2006 4:55 PM, Simon Kitching wrote:


On Sat, 2006-04-29 at 16:09 -0400, Colin Sampaleanu wrote:
 


Hi,

When turning on filtering for resources in Maven2, is there any way to 
override the default filter string pattern of '${token}'?  I can't find 
any mention of any way to customize this, in any docs.


The use of ${token} as a token is IMHO a really bad choice, given the 
fact that it's such a common token replacement syntax in various page 
templating technologies like JSPs. These are exactly the kinds of files 
likely to be copied around as resources, leading to all sorts of 
potential conflicts in filter instances meant to be replaced by Maven, 
and instances meant for the JSP engine.
   



Well, I believe that any tokens not recognised will be left unchanged.
So if you ensure non-conflicting names are used for those tokens you
want to substitute during builds, eg
 ${buildtime.username}
instead of
 ${username}
won't this achieve what you want?
 


Simon,

Unfortunately this is just way too unpredictable. We're talking about 
mixing up the tokens from Maven with those from any other templating 
technology used in resources that are being copied. Somebody can for 
example come along, add a variable that is used during the build, and 
then kill a similarily named substitution variable in a template file of 
some sort that is used at runtime in the app, and you won't even 
necessarilly find out about it until later.


To compound the potential for problems, there are plenty of maven tokens 
which are not very distinctly maven-specific, i.e. they don't have any 
sort of unique prefix.


There really needs to be a way to force a syntax which is exclusive to 
Maven's use... I find it really hard to believe that nobody else has not 
seen this as an issue in the past. I've always done lots of ant 
filtering in the past in my ant buils, and made sure that I used a token 
syntax that didn't conflict with any sort of filtering inside any app 
template files.


Colin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[m2] Is there any way to override the default filter pattern for resources?

2006-04-29 Thread Colin Sampaleanu

Hi,

When turning on filtering for resources in Maven2, is there any way to 
override the default filter string pattern of '${token}'?  I can't find 
any mention of any way to customize this, in any docs.


The use of ${token} as a token is IMHO a really bad choice, given the 
fact that it's such a common token replacement syntax in various page 
templating technologies like JSPs. These are exactly the kinds of files 
likely to be copied around as resources, leading to all sorts of 
potential conflicts in filter instances meant to be replaced by Maven, 
and instances meant for the JSP engine.


Regards,
Colin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: maven xdoclet

2003-09-21 Thread Colin Sampaleanu
The maven xdoclet plugin is huge because it is actually generated (as 
part of the xdoclet build).

I personally find it generally useless. For anything more than the 
simpler cases, it is easier and cleaner to have 'ant-style' xdoclet 
definitions in maven.xml exactly as you would have used in an ant build 
project. Having to use flat properties in build.properties can get a lot 
more verbose and error prone than a clean hierarchical xml definition in 
maven.xml.  On top of that, there were some bugs (upper vs. lowercase 
property names, which don't matter in xml files but do matter for 
properties), and some properties which were wrong. I believe most of 
them are fixed by now in xdoclet CVS but at a minimum you would have to 
rebuild xdoclet 1.2post-beta3.

You can search the archives for this mailing list for some messages from 
me showing how you would use xdoclet in maven.xml.



khote wrote:

I'm insufficiently familiar with xdoclet, I'm looking for a "hook" to get
myself into it.
in fact I know maven better than I know ant ... have become somewhat
familiar with the jelly scripting from looking at the plugin.jelly in the
plugins.  The xdoclet plugin is huge compared to all the others, approx
11,000 lines of code.
I was hoping that a good way to do it would be to use webdoclet to help me
generate a struts-config, this would show me how to set things up in
maven.xml and build/project.properties, which preGoal and/or postGoal events
I should program to, when and where, that kind of thing.
I'm using ant copy-filters comfortably in building a war subproject whose
artifact is a dependency in an ear subproject, it appears to me that xdoclet
in this frame of mind is a similar thing, only a great deal smarter.  I have
jmx working for me comfortably, getting this WAR deployed, scm, scp, cvs ..
all that stuff.
What should I put in an Action I'm writing, for example, to have webdoclet
write information to the struts-config?  How do I set this up in maven.xml?
Are there any webdoclet or other *doclet processes which can help me with
struts tiles?
I'm convinced that I want to use xdoclet when I start implementing the "uber
project" with ejbs and jboss and jmx and all that ... deployment xmls up the
wazoo so to speak.
- Original Message - 
From: "tek1" <[EMAIL PROTECTED]>
To: "Maven Users List" <[EMAIL PROTECTED]>
Sent: Sunday, September 21, 2003 1:28 AM
Subject: Re: maven xdoclet

 

Did you look at this yet?

http://xdoclet.sourceforge.net/maven-plugin.html

If you're familiar with the basics of XDoclet and Maven, the above offers
   

a
 

good explanation of integrating the two.

After reading and trying the above, let us know if you have any questions.



At 22:44 03/09/20 -0700, you wrote:
   

Looking for online tutorials covering maven and xdoclet, webdoclet, that
kind of thing.
Anybody know of any?

K

 





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Any way to have shared properties when extending from a base project

2003-09-19 Thread Colin Sampaleanu
Actaully, I like your method a bit better, since I want to have a 
top-level build.properties, but still allow a build.properties in the 
project to override that if possible. Since I have a maven.xml in every 
subproject anyways, it's not that big a deal to read in some files there.

Only issue is triggering the read. There used to be a build start goal 
(forgot what the name was) that you could use to attach off of (with a 
postGoal), but it got broken a long long time ago. I forgot the exact 
name. Does anybody know if this goal is still non-existentbroken? I had 
a look in Jira, but couldn't find an issue. Without that goal, it's 
almost impossible to do something at the begining of every build (like 
readin in properties) when you don't know what goal the user will be 
running, so you can do a preGoal off that or one of its dependencies...

Colin

khote wrote:

this method works?  I'm going to give it a try for certain.
It sounds a little chicken-and-the-egg though  does the top-level
maven.xml copy the *.properties into the sub-projects, or do the
sub-projects copy from ../*.properties themselves?
- Original Message - 
From: "Vincent Massol" <[EMAIL PROTECTED]>
To: "'Maven Users List'" <[EMAIL PROTECTED]>
Sent: Friday, September 19, 2003 11:35 AM
Subject: RE: Any way to have shared properties when extending from a base
project

 

Hi Colin,

This is a known wanted feature (I also want it dearly). Check JIRA. It's
scheduled for 1.1. If you want it faster, please send a patch and I'll
gladly apply it :-)
As a workaround on my work project, we have a custom maven.xml goal that
copies the top level project.properties to the current project you're
building. That means of course that you have to put all properties at
the top level.
Thanks
-Vincent
   

-Original Message-
From: Colin Sampaleanu [mailto:[EMAIL PROTECTED]
Sent: 19 September 2003 20:30
To: Maven Users List
Subject: Any way to have shared properties when extending from a base
project
I just realized that while you can extend a project with something
 

like
   

  extend>${basedir}/../master/project.xml
maven doesn't seem to read in build.properties (and project.properties
either I guess) from the master project. This is a real PITA, as I
 

don't
   

want to force people to put identical build.properties files in all
 

the
   

subprojects, and it's not acceptible to have a build.properties file
 

in
   

the user directory, as it will trample the version for other projects.

I think I'm missing something, as this is a big hole. What are other
people doing in this situation?
Regards,
Colin
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Any way to have shared properties when extending from a base project

2003-09-19 Thread Colin Sampaleanu
I just realized that while you can extend a project with something like
  extend>${basedir}/../master/project.xml
maven doesn't seem to read in build.properties (and project.properties 
either I guess) from the master project. This is a real PITA, as I don't 
want to force people to put identical build.properties files in all the 
subprojects, and it's not acceptible to have a build.properties file in 
the user directory, as it will trample the version for other projects.

I think I'm missing something, as this is a big hole. What are other 
people doing in this situation?

Regards,
Colin


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Using file://../../path for maven.repo.remote

2003-08-14 Thread Colin Sampaleanu
You can definitely use file: references to set up remote repos. I use 
this definition for maven.repo.remote in some projects:

maven.repo.remote=\
   file:${basedir}/../../shared/repository,\
   http://www.ibiblio.com/maven
Try using 'file:' instead of 'file://', the latter is not really kosher. 
Also, you probably need to go relative off ${basedir}.

However, note that there are some _severe_ issues with repo overrides 
and plugins. Plugins don't seem to be able to pick up remote and local 
repo overrides from a project's property files. This is why when I do my 
builds, all the dependencies the plugins themselves need come from 
ibiblio, and only my own dependencies come from my filesystem remote 
repo. Even then, everything totally breaks when I use the multiproject 
plugin, as it gets even more confused.

This issue is incredibly annoying and makes maven unusable in a number 
of situations... I filed a bug report about 7-8 months ago about this, 
but the functionality is still broken, and unfortunately I've not had 
the time to fix it myself, which has prevented me from moving a bunch of 
stuff to maven...

Robles, Rogelio wrote:

I need to support a closed building/deployment environment because the
production releases are built and deployed by our SCM admin team. They use a
clean and closed build box, using only officially approved tools: jdk, ant
and soon Maven ;-).
'remote' repositories are stored in our SCM server and project stakeholders
(developers and SCM admin team) get them through snapshots when is worth to
do it.
The structure that I have is this:

 /root
   /
   /projectX
   /component1
   /component2
   /component3
   /thirdparty
   /maven
   /repo
   /internal
   /repo
As you can see the  is different for all the stakeholders of
the project  so I can't use hard coded absolute directory names for the
repositories location.  Then I use relative URLs for references:
In component1's project.properties file I have:

maven.repo.remote=file://../../thirdparty/maven/repo,
file://../../internal/repo
This produces:

Attempting to download commons-lang-1.0.1.jar.
WARNING: Failed to download commons-lang-1.0.1.jar.
And I don't get the artifacts installed in my local repository.

At the beginning I was under the impression that I can't use relative URLs,
but I tested moving the 'remote' repositories as siblings of my components,
under projectX, and everything works fine, with this:
maven.repo.remote=file://../thirdparty/maven/repo, file://../internal/repo

Is there a possible solution for this static properties-file-only solution?
do I need to create a dynamic solution? I have thought of instead of
relative URL's generate absolute URLS at runtime using jelly, is this
possible?
Rogelio

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Using file://../../path for maven.repo.remote

2003-08-14 Thread Colin Sampaleanu
Don't bother posting into Jira, it's already posted as Maven-224.

I also discovered the bit with removing the /repository causing the 
subsequent ClassNotFoundException. I think it's due to the fact that 
plugin dependencies are assumed to have been satisfied once plugins have 
been initialized the first time. I believe there may be a Jira entry for 
this.

Robles, Rogelio wrote:

Under this circumstances, relative file URLs, Maven is unable to supply jar
dependencies to its plugins.
I'm using the jar:install goal in my component, and the first plugin to be
loaded it seems that is maven-artifact-plugin-1.0-SNAPSHOT and Maven
couldn't find its dependencies.
If I use an absolute file URL for maven.repo.remote everything works fine,
but I cannot use this as a solution since other developers will have
different SCM work directories.
In other things I found the following, if I erase the "/repository"
directory from my local repository I get a java.lang.ClassNotFoundException:
velocity at the middle of the jar dependencies copying, if I run maven
again, everything works fine :-\. I erased that directory when I was trying
to have a new local repository but just the jar files. 

I don't know if this new or not, I'll post it into JIRA anyway.

Rogelio

 

-Original Message-
From: Robles, Rogelio [mailto:[EMAIL PROTECTED]
   

-Original Message-
From: Colin Sampaleanu [mailto:[EMAIL PROTECTED]
However, note that there are some _severe_ issues with repo 
 

overrides 
   

and plugins. Plugins don't seem to be able to pick up remote 
and local 
repo overrides from a project's property files. 
 

Yes, now I'm stuck at the same place as you (I'm using 
maven-beta-10), some
plugins 
dependencies are not being copied over from the remote repositories.

I need to find out which plugins are and how they are getting their
dependencies.
   

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Using file://../../path for maven.repo.remote

2003-08-14 Thread Colin Sampaleanu
It's Maven-224.
 http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-224
I would have attempted a fix myself, but my feeling is that this 
involves potentially fairly heavy duty changes, more than my limited 
knowledge of Maven internals allows me to tackle...

[EMAIL PROTECTED] wrote:

Colin,

which is the bug report?
--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/
Colin Sampaleanu <[EMAIL PROTECTED]> wrote on 12/08/2003 10:48:37 PM:

 

You can definitely use file: references to set up remote repos. I use 
this definition for maven.repo.remote in some projects:

maven.repo.remote=\
   file:${basedir}/../../shared/repository,\
   http://www.ibiblio.com/maven
Try using 'file:' instead of 'file://', the latter is not really kosher. 
   

 

Also, you probably need to go relative off ${basedir}.

However, note that there are some _severe_ issues with repo overrides 
and plugins. Plugins don't seem to be able to pick up remote and local 
repo overrides from a project's property files. This is why when I do my 
   

 

builds, all the dependencies the plugins themselves need come from 
ibiblio, and only my own dependencies come from my filesystem remote 
repo. Even then, everything totally breaks when I use the multiproject 
plugin, as it gets even more confused.

This issue is incredibly annoying and makes maven unusable in a number 
of situations... I filed a bug report about 7-8 months ago about this, 
but the functionality is still broken, and unfortunately I've not had 
the time to fix it myself, which has prevented me from moving a bunch of 
   

 

stuff to maven...

Robles, Rogelio wrote:

   

I need to support a closed building/deployment environment because the
production releases are built and deployed by our SCM admin team. They 
 

use a
 

clean and closed build box, using only officially approved tools: jdk, 
 

ant
 

and soon Maven ;-).

'remote' repositories are stored in our SCM server and project 
 

stakeholders
 

(developers and SCM admin team) get them through snapshots when is 
 

worth to
 

do it.

The structure that I have is this:

/root
  /
  /projectX
  /component1
  /component2
  /component3
  /thirdparty
  /maven
  /repo
  /internal
  /repo
As you can see the  is different for all the stakeholders 
 

of
 

the project  so I can't use hard coded absolute directory names for the
repositories location.  Then I use relative URLs for references:
In component1's project.properties file I have:

maven.repo.remote=file://../../thirdparty/maven/repo,
file://../../internal/repo
This produces:

Attempting to download commons-lang-1.0.1.jar.
WARNING: Failed to download commons-lang-1.0.1.jar.
And I don't get the artifacts installed in my local repository.

At the beginning I was under the impression that I can't use relative 
 

URLs,
 

but I tested moving the 'remote' repositories as siblings of my 
 

components,
 

under projectX, and everything works fine, with this:

maven.repo.remote=file://../thirdparty/maven/repo, 
 

file://../internal/repo
 

Is there a possible solution for this static properties-file-only 
 

solution?
 

do I need to create a dynamic solution? I have thought of instead of
relative URL's generate absolute URLS at runtime using jelly, is this
possible?
Rogelio
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Noob question: how to deal with non maven jars?

2003-08-14 Thread Colin Sampaleanu
You can do something like this in maven.xml:
 
 
   
  
   
 file="${basedir}/lib/core/xmltypes.jar"
 
tofile="${jardir__}/${pom.artifactId}-xmltypes-${pom.currentVersion}.jar"
 overwrite="true"
   />
 

However, whether this is a good idea is another question. In this case, 
the jar in question is manually generated from stuff in this project, so 
it makes some sense. But if it is just another jar that is in the local 
lib dir which is really standalone, and it is not on ibiblio, then you 
are probably better off defining another remote repo which is actually 
local (alongside ibiblio), and put the jar there. E.g. in the 
project.properties:

# override remote repo since we want to also point to a cvs based remote 
repo
# to get some jars not found at ibiblio
maven.repo.remote=\
   file:${basedir}/../../shared/repository,\
   http://www.ibiblio.com/maven

Regards,
Colin
Michael Mills wrote:

After spending a lot of time looking at (what little) documentation
there is and trying out various maven command lines I was wondering how
(other than manually creating the dir in the maven.local.repository) you
get any old jar that is required for a build into your local repository.
If I have a jar: bob.jar that is currently in the 'lib' folder of my
project, which is currently using ant to build with that path added to
my project.classpath, how do I get bob.jar into my local repository so
that I can add the following to my maven project.xml file and get it to
compile:
   
 bob
 bob
 1.0
 jar
   
I have tried to use the "maven jar:xxx" goals but they don't seem to
work, also "maven repository:xxx" don't work (I have got a local
webserver running and maven.repo.remote=http://localhost stored in
build.properties in the user.profile directory).
I would have thought that you could cd to the lib folder and execute a
maven command to register bob in the local repository as version 1.0?
This does not seem possible.
In general I guess I am asking: what process is intended for files that
A, are not open source (i.e. in the standard maven remote repo) or B, do
not have the associated src files (and hence can not be built by a maven
project where you can use "maven jar:install").
-Mike

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: MAVEN_RC1_STABLE branch

2003-08-09 Thread Colin Sampaleanu
Are you expecting that this will be merged back into HEAD, or HEAD 
merged into this in the future? Unfortuntately I think your chance of 
merging 2 diverged branches (where ongoing work has gone on in both) 
with CVS is next to nil.   What is probably more realistic is for Jason 
or whoever to do his refactor on the stable branch (on his machine 
only), and while he is refactoring keep updating with checkins to this 
branch so he is basically tracking the branch, and then check in the 
refactor when it actually works...

[EMAIL PROTECTED] wrote:

As you may have noticed, the MAVEN_RC1_STABLE branch is now open for 
business.

I've backported the fixes post the RC1 refactor tag, so it should all be 
up to date.

The goal is to keep this a functioning set of code and apply fixes to it 
until the refactor is ready to be dropped in. As such, all non-core work 
should happen in this branch.

--
dIon Gillard, Multitask Consulting
Blog:  http://blogs.codehaus.org/people/dion/
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


ant filterchain support on copying

2003-08-08 Thread Colin Sampaleanu
Can anybody think of a way to make Maven support use of ant filterchains 
when copying resources, short of completely overriding the resource 
copying code? I don't think there is any way, but maybe somebody has an 
idea...

We find filterchains like
 
   
 
with the ant copy task extremely useful, since we don't have to manually 
create the filters; basically all the ant properties get expanded as 
filters.





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Maven Has Some Nice Features, But...

2003-06-21 Thread Colin Sampaleanu
If you are doing mostly C/C++ with some Java, you might want to look at 
SCons. It's _way_better thank makefiles, and now has some knowledge of 
Java, although nothing on the level of Maven.  Presumably you could have 
SCons call out to Maven or Ant for more complicated Java work.
 http://www.scons.org/

Brian Hall wrote:

How does Maven handle a mixed development world?  How easy (if it can be
done at all) is it for Maven's features be used to manage a project that
contains Java, C/C++, tcl/tk, etc.?
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Removing ${pom.X} usage in properties files.

2003-06-17 Thread Colin Sampaleanu
Jason van Zyl wrote:

On Tue, 2003-06-17 at 11:37, Jason van Zyl wrote:
 

Hi,

I wanted to check with users about the frequency of using ${pom.X}
notation in properties files. I would like to remove this feature as it
is causing some grief internally and the only place I see it being used
internally is driver.properties which isn't visible to most users.
I don't believe this 'feature' is being used but I wanted to check
because I believe I made an error in judgement letting this usage into
existence.
So for example in driver.properties we have:

maven.final.name = ${pom.artifactId}-${pom.currentVersion}

This is the type of usage I want to remove.
   

Just a clarification: there seem to be a few places in plugins where the
${pom.X) interpolation is used and I can catch those to make sure things
work. I really just wanted to know if this feature is in widespread use.
I would really like to move to properties files that strictly contain
user defined values and not pom defined values.
I've used it once in a while, to do stuff like
maven.ejb.final.name=${pom.artifactId}-beans-${pom.currentVersion}
Now this was to get around a limitation of the ejb plugin, which can't 
(or couldn't) let you override the final name. It would not necessarilly 
be that big a deal if this went away, I suppose, as long as I could 
still acess the value in maven.xml///



 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: setting maven.repo.local property for all projects

2003-06-13 Thread Colin Sampaleanu
There is another bug related to the repo override which I reported a 
long time ago
 http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-224
and I don't think has been fixed. Effectively, repo overrides don't work 
as far as plugins are concerned. Not necessarilly much of an issue for 
the plugins which ship with maven, since all their dependencies are on 
iBiblio, but a problem for adding in your own plugins.

Brett Porter wrote:

Its user's home (Java's ${user.home}).

Unfortunately, Cygwin doesn't figure that out properly, so you have to
put it under Window's HOME. If you do echo %HOME% in cmd.exe, you'll see
it is probably "C:\Documents And Settings\tek1".
I might investigate this and either have cygwin do a translation of the
HOME variable, or specify user.home on the command line.
You can probably bypass all of this for now and do
export MAVEN_OPTS=-Duser.home=`cygpath -pw /home/tek1`, then put
build.properties in there.
Cheers,
Brett
On Fri, 2003-06-13 at 15:50, tek1 wrote:
 

Hi Brett.

Thanks for your reply.

Is $HOME the user's home directory or MAVEN_HOME?

I tried placing build.properties in MAVEN_HOME as well as my user home 
directory (I'm using Cygwin on Win2k, so my home directory is 
"/cygwin/home/tek1").

However, neither setting worked...

Please advise.

Thank you again and have a nice evening.



At 15:10 03/06/13 +1000, you wrote:
   

put it in $HOME/build.properties instead. (this is in the same section -
showing it takes precedence).
I think driver.properties is now inside maven.jar and not loaded from
bin/. I'll submit a patch to the doco.
Cheers,
Brett
On Fri, 2003-06-13 at 14:13, tek1 wrote:
 

Hello.

According to the Maven Setup instructions:

"http://maven.apache.org/reference/user-guide.html#Maven Setup"

it seems as though if I set:

 maven.repo.local=/java/jars

in

 MAVEN_HOME/bin/driver.properties

that all projects would use the local repository at "/java/jars".

Even though I changed this setting, it doesn't seem to take effect.
Maven's still looking for the default local repository...?
I'm using maven-1.0-beta9.

Thank you.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   

--
Brett Porter <[EMAIL PROTECTED]>
f2 network
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: eclipse subprojects

2003-05-31 Thread Colin Sampaleanu
It's a bit of a hack in that ideally you would nest the projects, but it 
should work fine, although you might have to work on the reactor setup a 
bit so you don't include your root.

The main issue with using Eclipse in similr scenarios is when you get 
handed a maven or ant based nested structure (root with subs 
underneath), and you can't rearrange stuff like this. Then you have to 
go to something like putting the eclipse metadata for the root somewhere 
else, then linking back to any source in the root project.

Sonnek, Ryan wrote:

Thank you both for your replies.
So, I'm basically hearing two different approaches, one to create a
subproject of the root project (something like subroot), and place the
project.xml, maven.xml, etc there.  The other option would be to map all
subprojects into one eclipse project.  

I personally think that mapping all the source directories into one project
defeats the purpose of having the subprojects in the first place.  My
current project is relatively small, but having 10-20 subprojects does not
seem uncommon.  Having projects broken apart so that developers can focus on
their own modules and not have to see all other java and test files is a
major development bonus.  I can imagine having this master project easily
having 20 different src directories, and now THAT would be a maintenance
nightmare.
Placing the root files in a subproject seems to be a pretty good idea.  Will
the Reactor still perform as it should?  This is the project layout that
you're suggesting right?
+MyProject
|--+common subproject
 |--project.xml (extends ../root subproject/project.xml)
 |--maven.xml
|--+ejb subproject
 |--project.xml (extends ../root subproject/project.xml)
 |--maven.xml
|--+root subproject
 |--project.xml (main project.xml defining dependencies, etc)
 |--maven.xml
so, no files exist outside of a subproject?  Does this seem like a good
solution or more of a hack?
Ryan

-Original Message-
From: Gilles Dodinet [mailto:[EMAIL PROTECTED] 
Sent: Friday, May 30, 2003 10:14 AM
To: Maven Users List
Subject: Re: eclipse subprojects

your layout makes me think you need to have one and only one eclipse 
project (say root), with several source directories (common/src/java, 
ejb/src/java, etc..). maven-new module illustrates that. The drawback of 
such an approach is that .classpath isnot easily generated  since 
maven-eclipse-plugin doesnt yet take such layout into consideration. 
another approch would be to have different eclipse projects (so common 
module should not be under root) but then the problem is that you break 
the semantical relationships that exist between the various subprojects.

-- gd

Sonnek, Ryan wrote:

 

Ack!
I've just switched my project over to maven and have broken it up into
several subprojects (ejb, common, war, etc).  now, I know this is not a
"maven" problem, but as this is a common layout for a maven project I hope
someone will be able to help.  i've been able to create my subprojects
within eclipse, but I cannot get the files from my project root (ie:
project.xml, maven.xml, etc) to be included.  I've tried creating a new
project for the root module, but eclipse throws an error saying that 
"project root and project root/common overlap."  Is there some other way to
get these files included into eclipse?  I need to have these files tracked
by cvs, and eclipse is my main cvs tool.  Any help would be greatly
appreciated!

Here's my project layout:
+--project root
|--+common module
|--project.xml
|--maven.xml
|--+ejb module
|--project.xml
|--maven.xml
|--project.xml
|--maven.xml
I hope someone can answer this one!
Ryan
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
   



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: eclipse subprojects

2003-05-31 Thread Colin Sampaleanu
This is a problem, because while Eclipse can handle nested sources via 
exclusion filters, it can't actually handle nested projects where you 
need to have the eclipse project metadata somewhere at a root level, and 
below that have eclipse project metadata for other projects.

Now what will work is putting the root project metadata somewhere else. 
So it can live parallel to the subprojects for example, and then you can 
use links to bring in the source it needs... 

Sonnek, Ryan wrote:

Ack!
I've just switched my project over to maven and have broken it up into
several subprojects (ejb, common, war, etc).  now, I know this is not a
"maven" problem, but as this is a common layout for a maven project I hope
someone will be able to help.  i've been able to create my subprojects
within eclipse, but I cannot get the files from my project root (ie:
project.xml, maven.xml, etc) to be included.  I've tried creating a new
project for the root module, but eclipse throws an error saying that 
"project root and project root/common overlap."  Is there some other way to
get these files included into eclipse?  I need to have these files tracked
by cvs, and eclipse is my main cvs tool.  Any help would be greatly
appreciated!

Here's my project layout:
+--project root
|--+common module
 |--project.xml
 |--maven.xml
|--+ejb module
 |--project.xml
 |--maven.xml
|--project.xml
|--maven.xml
I hope someone can answer this one!
Ryan
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: werkz or jeez documetation

2003-04-05 Thread Colin Sampaleanu
btw, maven plugins can be found in the plugins dir underneath the local 
repository location...

Colin Sampaleanu wrote:

I see what you are getting at. The maven docs which mention goals in 
maven.xml
 http://maven.apache.org/reference/user-guide.html#maven.xml
are basically not giving any info, and they refere you to jelly tag 
docs which don't have any info on the werkz tags themselves.  Your 
best bet at this point is just to take a look at some of the maven.xml 
files for some of the maven plugins, which usually exercise goals 
pretty much. There is actually not a lot to it, basically you define 
goals, preGoals (which will get executed before the goal specified as 
the "name" attribute, and postGoals, which get executed afterwards. So 
if you want to for example have some code of yours in maven.xml 
execute before the built-in java:compile goal, you would define 
something like this in maven.xml
 
   ...some code
 

Hope this helps...

Neil Blue wrote:

Thanks Colin,

What I was looking for was some information on what goals are and how 
to write them. As far as I understand, in order to add project 
specific functionality to maven I need to add goals in a similar way 
as I added targets in ant.

Cheers
Neil
Colin Sampaleanu wrote:

You can find some werkz documentation here:
 http://werkz.werken.com/
although you normally shouldn't have to understand werkz that much 
if all you want to do is use maven (as opposed to hacking it).

Neil Blue wrote:

Hello,

I am trying to get started with Maven, but I can't find any 
documentation on werkz or jeez. Please can anyone tell me if any is 
available.




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: werkz or jeez documetation

2003-04-05 Thread Colin Sampaleanu
I see what you are getting at. The maven docs which mention goals in 
maven.xml
 http://maven.apache.org/reference/user-guide.html#maven.xml
are basically not giving any info, and they refere you to jelly tag docs 
which don't have any info on the werkz tags themselves.  Your best bet 
at this point is just to take a look at some of the maven.xml files for 
some of the maven plugins, which usually exercise goals pretty much. 
There is actually not a lot to it, basically you define goals, preGoals 
(which will get executed before the goal specified as the "name" 
attribute, and postGoals, which get executed afterwards. So if you want 
to for example have some code of yours in maven.xml execute before the 
built-in java:compile goal, you would define something like this in 
maven.xml
 
   ...some code
 

Hope this helps...

Neil Blue wrote:

Thanks Colin,

What I was looking for was some information on what goals are and how 
to write them. As far as I understand, in order to add project 
specific functionality to maven I need to add goals in a similar way 
as I added targets in ant.

Cheers
Neil
Colin Sampaleanu wrote:

You can find some werkz documentation here:
 http://werkz.werken.com/
although you normally shouldn't have to understand werkz that much if 
all you want to do is use maven (as opposed to hacking it).

Neil Blue wrote:

Hello,

I am trying to get started with Maven, but I can't find any 
documentation on werkz or jeez. Please can anyone tell me if any is 
available.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: werkz or jeez documetation

2003-04-04 Thread Colin Sampaleanu
You can find some werkz documentation here:
 http://werkz.werken.com/
although you normally shouldn't have to understand werkz that much if 
all you want to do is use maven (as opposed to hacking it).

Neil Blue wrote:

Hello,

I am trying to get started with Maven, but I can't find any 
documentation on werkz or jeez. Please can anyone tell me if any is 
available.

Thanks

Neil

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Why no multiple locations of sources? ( was Re: inter-projectdependencies for the Eclipse plugin )

2003-04-02 Thread Colin Sampaleanu
Jason van Zyl wrote:

On Wed, 2003-04-02 at 09:05, Rafal Krzewski wrote:
 

Jason van Zyl wrote:

That is distinctly different than multiple source directories for your
application. And here we are trying satisfy these requirements and scale
by letting the plugins deal with these different requirements instead of
trying to jam everything into the POM.
 

I believe that the POM is the proper place for defining what goes in
your project. Plugins should retrieve information from there and proceed
with their work. 
   

I've pondered this many a time. I really do not like the idea of having
to augment your POM when you choose to use a plugin. I very much like
the way the antlr plugin works in that it just kicks in when certain
resources are present. 

Right now many plugins rely on project.properties file
rather than POM, wich I think is not right.
Of course we should always use our best judgement to avoid cluttering
the POM, but I thing that the source directories (java, aspect, unit
test, and others that arise) are crucial for defining the project, and
therefore they should be in the POM.
I really like Michal's proposal with sources/source/type elements.
It puts the emphasis on the plugins undestating a specific type of
sources, and allows us remove funcitonality from Maven core -
it only manages information on abstract source sets.
   

Sorry but I'm not sure I follow. Adding this abstraction adds to maven's
core. Offloading all processing and definition to the plugin is the way
I want to move.
I think this kind of change that it's really worth pursuing.
   

I'm not really in favour of this and much prefer the way the antlr
plugin works. I would like to see most of the  element removed
and replaced with a place where you can define plugin settings if they
are required. We started this a long time ago and there was a proposal
that just never got implemented.
 

I completely agree with you about having plugins actually be the ones 
doing their stuff with the sources. However, maven has to provide basic 
facilities to plugins for dealing with source directories, and for 
expressing these in the POM (in a section specific to that plugin is 
fine). What feels inherently wrong about the present setup is that the 
POM specifically knows about 4 different source directory types, and 
stops there.  It should really only know about 'source directories', and 
stop there. What is done with the directories is a function of metadata 
(not expressed as xml elements, as presently done) attached to those 
entries, or the fact thay they are in a plugin specific section, and 
various plugins which act on that. Something similar to Michal's 
proposal is actually a lot cleaner than the present setup.

Regards, Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: inter-project dependencies for the Eclipse plugin

2003-04-01 Thread Colin Sampaleanu
Jason van Zyl wrote:

On Tue, 2003-04-01 at 10:33, Colin Sampaleanu wrote:

Jason, can you clarify what the real issue with multiple source 
directories is? 
   

...

Given that Maven already does support 
multiple source dirs in the only fashion I use them (to separate test 
sources from non-test sources), and handles generated sources (from the 
like of xdoclet), I don't personally need anything more for my projects. 
   

Multiple source directories are not supported. The addPath tag is being
abused if people are not using it in conjunction with some generative
process and it will just eventually bite them in the ass. Make their
projects many fold more complex than they have to be, developer
comprehension will drop an order of magnitude and it's generally a
lose/lose situation. 

However this restriction seems like a somewhat arbitrary decision 
notheless, 
   

Far from arbitrary. People can use the addPath tag to work around it and
to migrate projects but I certainly don't recommend it ever. At least in
the POM more than one source directory will never be supported.
I don't understand how you can say Maven doesn't support multiple source 
directories, what about sourceDirectory, unitTestSourceDirectory, 
integrationUnitTestSourceDirectory, aspectSourceDirectory? These are all 
different source directories that are handled by various parts of Maven. 
To draw the line there seems awfully presumptious. With all due respect 
to your opinion (that this handles most cases and results in good 
practices, which I agree), I've been around the block enough to know 
that I don't know everything. If somebody/an organization has a need to 
add another source dir that is on an equal basis to the ones above (to 
be used by a plugin, or whatever), and feel that in their usage this 
results in a cleaner/better setup, power to them. Unfortunately there is 
no way to do it. Is Maven development driven by the needs of the users, 
or the need to enforce your (and in this case mine) idea of best 
practices at the exclusion of others. If it were a matter of 
compromising the best way to do it, or introducing large amounts of 
additional complexity to the setup/build process, I would understand it, 
but that is not the case here. This attittude should apply in general, 
not just to this feature.

Just my opinion, and I hope I don't come off the wrong way here, I do in 
general love Maven and what you've done.

Regards, Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: inter-project dependencies for the Eclipse plugin

2003-04-01 Thread Colin Sampaleanu
Jason van Zyl wrote:

On Mon, 2003-03-31 at 19:29, [EMAIL PROTECTED] wrote:
 

"Mark H. Wilkinson" <[EMAIL PROTECTED]> wrote on 01/04/2003 
01:44:01 AM:

On Fri, 2003-03-28 at 20:57, Mark McBride wrote:
Ahh; see what you mean. I don't think it would be that difficult to add
support for that kind of thing, but it's not there now. You'd need to
solve a couple of problems:
1. You need a standard way to represent multiple Java source trees
   in the POM. 
 

That will never happen. It was fully intentional that there is only one
source directory per project.
At the moment the paths to the source trees are
   

   encoded in the jelly script, so aren't easily available to any
   plugin. A simple solution that you could start with would be to
   put them in  elements in the POM, but there probably
   ought to be support for this in the POM itself (IMHO).
 

Sorry, I don't understand. Do you mean for multiple source directories
when you add them manually? The addPath tag was made specifically for
generative plugins like antlr where sources are generated. That is the
only intended use.
We've tried having multiple source trees before. It was damn difficult. 
I'm happy for someone else to give it a go and get everything working 
consistently, but I personally have been down that road and never want to 
go back.
   

+1

There will never, ever, ever be support for more than one source tree
per project.
Jason, can you clarify what the real issue with multiple source 
directories is? I've tried searching through the dev and user archives 
I've got (back to last Aug), and couldn't get a good idea of what the 
problem is. The best I could find was a statement from you that you 
don't consider it good form since it encourages putting together 
unrelated source in the same project.

While having Maven encourage good source organization practices is a 
laudible goal, are there any real technical issues with supporting 
multiple source directories? Given that Maven already does support 
multiple source dirs in the only fashion I use them (to separate test 
sources from non-test sources), and handles generated sources (from the 
like of xdoclet), I don't personally need anything more for my projects. 
However this restriction seems like a somewhat arbitrary decision 
notheless, which makes it much harder for some projects currently using 
Ant or various IDEs like JBuilder or Eclipse, all of which do currently 
support multiple source directories (and multiple target directories for 
that matter), to switch over to Maven. If existing projects must be 
significantly reorganized to use Maven, there is much less chance they 
will do so, as opposed to the approach of getting the build going in 
some fashion, and then doing a gradual refactoring of the project 
layout(s). IMHO, the best tools are flexible enough to support existing 
practices, while gently prodding users towards best practices.

Regards,

Colin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]