Re: Is there a way to use a property as the version of a parent pom?
Quoting Ralph Goers [EMAIL PROTECTED]: It is currently working as designed. Maven won't resolve properties for any of the items in the parent section. The pom below would be a problem if it was actually installed into a repository as it would require that the property be specified even if the artifact was a transitive dependency. I don't follow you here. In the parent pom.xml, I use normal version numbers. All I want is that the current pom.xml allows a property as the version of the parent POM. Even if the current POM gets installed in a repository, it's no problem because (just like when it's local), the property must be set when it's loaded/resolved/whatever. This is a problem. Anyone who wants to use your artifact, or anyone who wants to use an artifact which uses your artifact would have to set the property. Worse, they really wouldn't have any idea what the proper version should be. Well, we need this only internally. Then, if you really wanted to, you could add a comment to the pom to give a hint which version to use and you could give an explanation in the website. And if all else fails, you could just look in the repository to see which versions are available. I mean, this is not some info which has no context. This is part of a project and that means that you have more ways to transfer this information (which is vital since you need that feature). Does that mean that I could omit the version tag and just use relativePath? That would work for me. Is that patch for 2.0 or 2.1? No, you would need the version tag with the version being a special symbol. While omitting the version would be nice I'm sure it would break all kinds of existing use cases and that can't be tolerated. I am targeting 2.0, but only if I can be sure it won't break any builds. And timeframe for a patch to try? I'm aware that there are plans to allow includes in Maven 2.1 but I'd like a solution for 2.0. I'm not really sure what you mean by this. I'm not aware of includes. In 2.1, you can build a POM by using fragments (I don't remember the real name and I couldn't find anything in the Wiki right now). It's kind of like having several parent POMs where each of them adds a certain piece of info. Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
Quoting Stephen Connolly [EMAIL PROTECTED]: you can use -DparentVersion=[1.3.4] to force a specific version and it rewrites the pom without changing any formatting or comments That sounds very promising! In fact, I've just downloaded the patch and found it's a complete plugin. Here are a few suggestions: 1. Create a new project on CodeHaus for this plugin instead of trying to get this plugin into maven core. 2. Rename the plugin to pom (for pom modification) 3. Make the plugin more general, i.e. allow to specify a simple XPath on the command-line and a replacement. Kind of XML search'n'replace. 4. Work on the current POM and all POMs in all sub-modules. Since I need this pretty urgent, I'm willing to help to develop this. I'll send you a patch to your private address later today. Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
On Tue, Jul 29, 2008 at 9:29 AM, Aaron Digulla [EMAIL PROTECTED] wrote: Quoting Stephen Connolly [EMAIL PROTECTED]: you can use -DparentVersion=[1.3.4] to force a specific version and it rewrites the pom without changing any formatting or comments That sounds very promising! In fact, I've just downloaded the patch and found it's a complete plugin. Here are a few suggestions: 1. Create a new project on CodeHaus for this plugin instead of trying to get this plugin into maven core. This is not a patch but a request for a plugin to be added to codehaus... so done already!. 2. Rename the plugin to pom (for pom modification) Well there are some other goals I intend to add that make the versions-maven-plugin a better name 3. Make the plugin more general, i.e. allow to specify a simple XPath on the command-line and a replacement. Kind of XML search'n'replace. I'm more interested in version related stuff, but I don't have objections to splitting the pom rewriting stuff (it needs some improvements) into a shared module and having a second plugin to do the other stuff. 4. Work on the current POM and all POMs in all sub-modules. It actually does this already... but in a safer way than you'd think! It only updates the parent of projects who's parent is _not in the reactor_. If we updated the parent of projects who's parent was in the reactor we'd break the build! Since I need this pretty urgent, I'm willing to help to develop this. I'll send you a patch to your private address later today. We need to get a codehaus committer to buy into putting it into sandbox and giving me you commit access to sandbox Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
It is currently working as designed. Maven won't resolve properties for any of the items in the parent section. The pom below would be a problem if it was actually installed into a repository as it would require that the property be specified even if the artifact was a transitive dependency. I am working on a modification that allows the version to be obtained by reading the pom located at the relativePath and getting the version from it, but I still have a couple of issues to resolve. It wouldn't solve your case though, as even there it won't actually accept a system property for the version. Ralph Aaron Digulla wrote: Hi, This may sound silly but I can't get this to work: parent groupIdch.globus/groupId artifactIdglobus-parent-pom/artifactId version${version.globus-parent-pom}/version /parent I tried to define the property via settings.xml, via %HOME%\mavenrc_pre.bat and directly on the command line. No luck. Maven doesn't seem to resolve properties for parent POMs. Why is that? Is that a bug? Regards, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
Quoting Ralph Goers [EMAIL PROTECTED]: It is currently working as designed. Maven won't resolve properties for any of the items in the parent section. The pom below would be a problem if it was actually installed into a repository as it would require that the property be specified even if the artifact was a transitive dependency. I don't follow you here. In the parent pom.xml, I use normal version numbers. All I want is that the current pom.xml allows a property as the version of the parent POM. Even if the current POM gets installed in a repository, it's no problem because (just like when it's local), the property must be set when it's loaded/resolved/whatever. I mean, the repository server isn't going to try to use that string for anything, is it? Maven will download the file, parse it and complain if the property isn't set. I am working on a modification that allows the version to be obtained by reading the pom located at the relativePath and getting the version from it, but I still have a couple of issues to resolve. It wouldn't solve your case though, as even there it won't actually accept a system property for the version. Does that mean that I could omit the version tag and just use relativePath? That would work for me. Is that patch for 2.0 or 2.1? What is the most simple way to include common dependencies, plugin configs and properties in many POMs? I'm using parent but as it is, I have to update the version numbers in about 100 files when I change the different parent POMs (and no, the parent pom is not ../pom.xml; it's somewhere else in the tree and I have three different parent POMs). I'm aware that there are plans to allow includes in Maven 2.1 but I'd like a solution for 2.0. Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
On Mon, Jul 28, 2008 at 2:23 PM, Aaron Digulla [EMAIL PROTECTED] wrote: Quoting Ralph Goers [EMAIL PROTECTED]: It is currently working as designed. Maven won't resolve properties for any of the items in the parent section. The pom below would be a problem if it was actually installed into a repository as it would require that the property be specified even if the artifact was a transitive dependency. I don't follow you here. In the parent pom.xml, I use normal version numbers. All I want is that the current pom.xml allows a property as the version of the parent POM. Even if the current POM gets installed in a repository, it's no problem because (just like when it's local), the property must be set when it's loaded/resolved/whatever. I mean, the repository server isn't going to try to use that string for anything, is it? Maven will download the file, parse it and complain if the property isn't set. I am working on a modification that allows the version to be obtained by reading the pom located at the relativePath and getting the version from it, but I still have a couple of issues to resolve. It wouldn't solve your case though, as even there it won't actually accept a system property for the version. Does that mean that I could omit the version tag and just use relativePath? That would work for me. Is that patch for 2.0 or 2.1? What is the most simple way to include common dependencies, plugin configs and properties in many POMs? I'm using parent but as it is, I have to update the version numbers in about 100 files when I change the different parent POMs (and no, the parent pom is not ../pom.xml; it's somewhere else in the tree and I have three different parent POMs). I'm aware that there are plans to allow includes in Maven 2.1 but I'd like a solution for 2.0. please vote for http://jira.codehaus.org/browse/MOJO-1178 This has a goal called update-parent that will update the parent version in the pom to the latest available. You can then use a compositional pom to invoke the goal on all the trees of projects and they will all have their parent version updated... and you can then just promote all these changes to SCM in one go Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
Quoting Stephen Connolly [EMAIL PROTECTED]: What is the most simple way to include common dependencies, plugin configs and properties in many POMs? [...] please vote for http://jira.codehaus.org/browse/MOJO-1178 This has a goal called update-parent that will update the parent version in the pom to the latest available. Dear me, no! What I want is to update to a specific version. Also, rewriting the POM.xml means that I'll loose all comments and formatting. No thanks. Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is there a way to use a property as the version of a parent pom?
you can use -DparentVersion=[1.3.4] to force a specific version and it rewrites the pom without changing any formatting or comments Sent from my iPod On 28 Jul 2008, at 16:51, Aaron Digulla [EMAIL PROTECTED] wrote: Quoting Stephen Connolly [EMAIL PROTECTED]: What is the most simple way to include common dependencies, plugin configs and properties in many POMs? [...] please vote for http://jira.codehaus.org/browse/MOJO-1178 This has a goal called update-parent that will update the parent version in the pom to the latest available. Dear me, no! What I want is to update to a specific version. Also, rewriting the POM.xml means that I'll loose all comments and formatting. No thanks. Regards, -- Aaron Optimizer Digulla a.k.a. Philmann Dark It's not the universe that's limited, it's our imagination. Follow me and I'll show you something beyond the limits. http://www.pdark.de/ - 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: Is there a way to use a property as the version of a parent pom?
Sorry for not answering sooner. I was travelling today. Comments are below. Aaron Digulla wrote: Quoting Ralph Goers [EMAIL PROTECTED]: It is currently working as designed. Maven won't resolve properties for any of the items in the parent section. The pom below would be a problem if it was actually installed into a repository as it would require that the property be specified even if the artifact was a transitive dependency. I don't follow you here. In the parent pom.xml, I use normal version numbers. All I want is that the current pom.xml allows a property as the version of the parent POM. Even if the current POM gets installed in a repository, it's no problem because (just like when it's local), the property must be set when it's loaded/resolved/whatever. This is a problem. Anyone who wants to use your artifact, or anyone who wants to use an artifact which uses your artifact would have to set the property. Worse, they really wouldn't have any idea what the proper version should be. I mean, the repository server isn't going to try to use that string for anything, is it? Maven will download the file, parse it and complain if the property isn't set. No, the respository wouldn't use that string directly. But having the pom in the repository with the parent version as a variable means that no one would know for sure what the parent version actually is. I am working on a modification that allows the version to be obtained by reading the pom located at the relativePath and getting the version from it, but I still have a couple of issues to resolve. It wouldn't solve your case though, as even there it won't actually accept a system property for the version. Does that mean that I could omit the version tag and just use relativePath? That would work for me. Is that patch for 2.0 or 2.1? No, you would need the version tag with the version being a special symbol. While omitting the version would be nice I'm sure it would break all kinds of existing use cases and that can't be tolerated. I am targeting 2.0, but only if I can be sure it won't break any builds. What is the most simple way to include common dependencies, plugin configs and properties in many POMs? I'm using parent but as it is, I have to update the version numbers in about 100 files when I change the different parent POMs (and no, the parent pom is not ../pom.xml; it's somewhere else in the tree and I have three different parent POMs). I have the same problem, which is why I am attempting to solve this. Standard maven practice seems to be to use the release plugin and bump up the version numbers even though nothing at all changes. My builds don't do this. We only change the version numbers of projects that have actual modifications, so having to change the version in the pom is really annoying. I'm aware that there are plans to allow includes in Maven 2.1 but I'd like a solution for 2.0. I'm not really sure what you mean by this. I'm not aware of includes. Ralph - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]