In my opinion it is a good choice to make the MavenProject immutable. This way the content of the pom.xml will always match the model, no magic. To adjust properties you could use MavenSession.userProperties instead, and I would expect that this would result in the same behavior as changing it in the project directly.
Will this work for you?

Robert

On Thu, 27 Oct 2016 09:12:46 +0200, M. Richey <[email protected]> wrote:

Are there any news regarding this topic?

Kind regards,

Maik

Gesendet: Montag, 10. Oktober 2016 um 16:01 Uhr
Von: "Benson Margulies" <[email protected]>
An: "Maven Users List" <[email protected]>
Betreff: Re: Aw: Re: Re: [Regression] Declared properties could not be modified anymore within a plugin

Now I get the same thing you do. I better see what's broken in my builds.


On Mon, Oct 10, 2016 at 10:00 AM, Benson Margulies
<[email protected]> wrote:
> That's odd. Let me run my test again.
>
>
> On Mon, Oct 10, 2016 at 8:44 AM, Robert Patrick
> <[email protected]> wrote:
>> I can confirm that it is not possible to override a project property in a plugin with Maven 3.3.9. I am not sure what the expected behavior is but trying to override a pre-initialized value (from command-line -Ds, .mvn/maven.config, or the POM) from a plugin has no effect...
>>
>>
>> -----Original Message-----
>> From: M. Richey [mailto:[email protected]]
>> Sent: Monday, October 10, 2016 4:16 AM
>> To: [email protected]
>> Cc: Maven Users List
>> Subject: Aw: Re: Re: [Regression] Declared properties could not be modified anymore within a plugin
>>
>> Thanks Benson, but it does not work for me.
>>
>> During the execution it says:
>>
>> [main] [DEBUG] define property osgi-version = "1.0.0.v20161010082844"
>>
>> But in the MANIFEST.MF it says:
>>
>> Manifest-Version: 1.0
>> Built-By: maik
>> demo: bad
>> Created-By: Apache Maven 3.3.9
>> Build-Jdk: 1.8.0_66
>>
>> So, as I said before, during the execution the property gets set and the pre-initialized value is used afterwards.
>>
>> Best regards,
>>
>> Maik
>>
>>
>>> Gesendet: Samstag, 08. Oktober 2016 um 16:45 Uhr
>>> Von: "Benson Margulies" <[email protected]>
>>> An: "Maven Users List" <[email protected]>
>>> Betreff: Re: Re: [Regression] Declared properties could not be
>>> modified anymore within a plugin
>>>
>>> https://github.com/benson-basis/prop-override-example
>>>
>>> Seems to be a demo that
>>>
>>> https://github.com/basis-technology-corp/basis-build-helper-maven-plug
>>> in
>>>
>>> overrides properties.
>>>
>>> Using:
>>>
>>> private void defineProperty(String name, String value) {
>>>     if (getLog().isDebugEnabled()) {
>>> getLog().debug("define property " + name + " = \"" + value + "\"");
>>>     }
>>>     project.getProperties().put(name, value); }
>>>
>>>
>>> On Tue, Oct 4, 2016 at 4:03 PM, Benson Margulies <[email protected]> wrote:
>>> > On Tue, Oct 4, 2016 at 5:35 AM, M. Richey <[email protected]> wrote:
>>> >> Thanks Benson to point that out, it's a good example.
>>> >>
>>> >> We have several use cases where we modify properties with our plugins. We have a large variety of our software which to build for up to three brands. For which brand a specific software is to build is defined outside the poms and provided by our plugin. As we all know you can't loop inside the poms. So we execute a plugin once for each brand to find out if this variant should be build for the brand specified. Therefore we defined a property in the pom.xml, pre-initialized with a default value, and if the software should be build for one brand, the brand is appended to the list, i.e. the value of the property, during the execution of our plugin. So the value of the property may be something like "default,brand1,brand3" after the executions of the plugin.
>>> >>
>>> >> So for us it is a blocker at the moment that one can't modify properties during the execution of a plugin anymore.
>>> >>
>>> >> Benson, you said you have some of these working with 3.3.9. Can you give an example of a plugin where this is working? I would like to see how they are doing it in their code.
>>> >
>>> > I'd better do a test to ensure that they are working as well as I
>>> > think they are and then get back to you.
>>> >>
>>> >> Kind regards,
>>> >>
>>> >> Maik
>>> >>
>>> >>
>>> >>
>>> >>> Gesendet: Sonntag, 02. Oktober 2016 um 22:04 Uhr
>>> >>> Von: "Benson Margulies" <[email protected]>
>>> >>> An: "Maven Users List" <[email protected]>, [email protected]
>>> >>> Betreff: Re: [Regression] Declared properties could not be
>>> >>> modified anymore within a plugin
>>> >>>
>>> >>> On Fri, Sep 30, 2016 at 1:50 PM, Karl Heinz Marbaise <[email protected]> wrote:
>>> >>> > Hi,
>>> >>> >
>>> >>> > On 30/09/16 15:20, [email protected] wrote:
>>> >>> >>
>>> >>> >> Hi all,
>>> >>> >>
>>> >>> >> we discovered a problem with properties defined in a pom.xml.
>>> >>> >>
>>> >>> >> Properties could be defined in a pom.xml like:
>>> >>> >>
>>> >>> >> <properties>
>>> >>> >> <myProp>default</myProp>
>>> >>> >> </properties>
>>> >>> >>
>>> >>> >> In a maven plugin we fetch all the properties by calling:
>>> >>> >>
>>> >>> >> Properties projectProps = project.getProperties();
>>> >>> >>
>>> >>> >> Running all this with maven 2 we were able to modify the value of "myProp"
>>> >>> >> within the plugin by:
>>> >>> >>
>>> >>> >> projectProps.put("myProp", "newValue");
>>> >>> >>
>>> >>> >> So after the execution of the plugin, the property <myProp> has
>>> >>> >> the value "newValue".
>>> >>> >>
>>> >>> >> Running all this with maven 3 that does not work anymore.
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> > First I would say this is by design wrong, cause if you define a >>> >>> > property in the pom file I would like to be sure that it will be >>> >>> > kept the value I have given and if a plugin (which could it be)
>>> >>> > will change that I will be really astonished.
>>> >>> >
>>> >>> >
>>> >>> > Apart from that my question: Why do you need to change existing
>>> >>> > properties and why not changing the in the pom which is more
>>> >>> > clearer than mysteriously chaning a property by a plugin?...
>>> >>> >
>>> >>> > Can you give more details about your use case ? Best would be
>>> >>> > having a real workign example and what kind of problems you are
>>> >>> > trying to solve with this approach?
>>> >>> >
>>> >>> >
>>> >>> > Kind regards
>>> >>> > Karl Heinz Marbaise
>>> >>> >
>>> >>> > ---------------------------------------------------------------- >>> >>> > ----- To unsubscribe, e-mail: [email protected]
>>> >>> > For additional commands, e-mail: [email protected]
>>> >>>
>>> >>> Here's why this is important.
>>> >>>
>>> >>> Consider a plugin with the job of setting a property, like many of
>>> >>> the build-helper goals, or the build-number plugin.
>>> >>>
>>> >>> Now, consider an IDE. The IDEs don't, in general, know about these
>>> >>> plugins. They get confused when they don't have a value at all.
>>> >>> So, SOP is is to put a harmless default into the POM, and count on
>>> >>> the plugin overwriting it. I have some of these working with
>>> >>> 3.3.9, so there must be something more subtle going on.
>>> >>>
>>> >>>
>>> >>> >
>>> >>>
>>> >>> ------------------------------------------------------------------
>>> >>> --- 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]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> 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]



---------------------------------------------------------------------
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]

Reply via email to