Thanks Barrie!
That modification made the trick.

I also don't actually know if configuring the plugin using the command
line properties is a best practice.
But seeing the source code of the eclipse plugin, I traced it to the
IdeUtils.java [1], and it seems that the properties are not tacked
into account.

[1] 
http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/ide/IdeUtils.java

2011/9/22 Barrie Treloar <[email protected]>:
> On Fri, Sep 23, 2011 at 3:51 AM, Gabriel Belingueres
> <[email protected]> wrote:
>> Hi,
>>
>> I'm using Maven 3.0.3.
>>
>> My current project pom.xml file uses a parent pom where is defined the
>> maven-compiler-plugin configuration:
>>
>>  <properties>
>>        <maven.compiler.source>1.6</maven.compiler.source>
>>        <maven.compiler.target>1.6</maven.compiler.target>
>>        <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
>>        <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
>>        
>> <maven.compiler.debuglevel>lines,vars,source</maven.compiler.debuglevel>
>>        <maven.compiler.verbose>true</maven.compiler.verbose>
>>  </properties>
>>
>>  <build>
>>    <pluginManagement>
>>      <plugins>
>>        <plugin>
>>          <groupId>org.apache.maven.plugins</groupId>
>>          <artifactId>maven-compiler-plugin</artifactId>
>>          <version>2.3.2</version>
>>          <configuration>
>>            <compilerArgument>-Xlint:all</compilerArgument>
>>          </configuration>
>>        </plugin>
>>       ...
>>      </plugins>
>>    </pluginManagement>
>>
>>    <plugins>
>>      <!-- all projects inherites the compiler configuration -->
>>      <plugin>
>>        <groupId>org.apache.maven.plugins</groupId>
>>        <artifactId>maven-compiler-plugin</artifactId>
>>      </plugin>
>>    </plugins>
>>
>>
>> If in the actual project pom.xml I do not declare the compiler plugin,
>> or if I declare it like this:
>>
>>    <plugins>
>>      <plugin>
>>        <groupId>org.apache.maven.plugins</groupId>
>>        <artifactId>maven-compiler-plugin</artifactId>
>>      </plugin>
>>    </plugins>
>>
>> or with the version number:
>>
>>    <plugins>
>>      <plugin>
>>        <groupId>org.apache.maven.plugins</groupId>
>>        <artifactId>maven-compiler-plugin</artifactId>
>>        <version>2.3.2</version>
>>      </plugin>
>>    </plugins>
>>
>> then the .settings/org.eclipse.jdt.core.prefs file is NOT generated.
>>
>> However, it is generated if I redeclare it fully like this:
>>
>>      <plugin>
>>        <groupId>org.apache.maven.plugins</groupId>
>>        <artifactId>maven-compiler-plugin</artifactId>
>>        <version>2.3.2</version>
>>        <configuration>
>>          <source>1.6</source>
>>          <target>1.6</target>
>>          <compilerArgument>-Xlint:all</compilerArgument>
>>          <showWarnings>true</showWarnings>
>>          <showDeprecation>true</showDeprecation>
>>          <debuglevel>lines,vars,source</debuglevel>
>>          <verbose>true</verbose>
>>        </configuration>
>>      </plugin>
>>
>> is there a bug with the eclipse plugin? or am I doing something wrong?
>
> The answer is kind of.
>
> There is no standard way (that I'm aware of) for a mojo to ask for the
> metadata of another mojo.
> That is, the maven-eclipse-plugin can't ask maven-compiler-plugin what
> its configuration is.
> So what we do is to scan the pom model file that Maven builds up
> looking in both the build/plugins and pluginManagement sections for
> the maven compiler.
> Then look for the specific option of interest (i.e. the "source" property).
>
> What you are doing is setting the source value by indirection.
> You are setting the equivalent of -Dmaven.compiler.source on the
> command line, which is not showing up in the model representation.
> (This may be where the bug is)
>
> I'm not sure what best practice is, but I think using properties to
> set values in plugins indirectly is probably not the way to go.
> Use the property definitions but then configure the plugin with that property.
>
> You already have a pluginManagement section, so I would specify the
> configuration values there:
>
>  <properties>
>       <maven.compiler.source>1.6</maven.compiler.source>
>       <maven.compiler.target>1.6</maven.compiler.target>
>       <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
>       <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
>       <maven.compiler.debuglevel>lines,vars,source</maven.compiler.debuglevel>
>       <maven.compiler.verbose>true</maven.compiler.verbose>
>  </properties>
>  <build>
>   <pluginManagement>
>     <plugins>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-compiler-plugin</artifactId>
>         <version>2.3.2</version>
>         <configuration>
>           <compilerArgument>-Xlint:all</compilerArgument>
>           <source>${maven.compiler.source}</source>
>           <target>${maven.compiler.target}</target>
> etc...
>         </configuration>
>       </plugin>
>
> ---------------------------------------------------------------------
> 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