[ 
https://issues.apache.org/jira/browse/MENFORCER-473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17701059#comment-17701059
 ] 

Nils Christian Ehmke commented on MENFORCER-473:
------------------------------------------------

Hi [~cstamas],

Thank you for the quick answer. Some follow-up questions:
 * Can we somehow circumvent this? The documentation only shows how to 
implement custom rules using the new injection-based API, but can we still use 
the full qualified class name and evaluate the required Maven properties in 
another way instead of using an injected instance of {_}MavenProject{_}?
 * Is there any roadmap on when/how this will be solved? Given that Java 17 has 
been released in 2021, it seems problematic that this has not somehow been 
adressed already. We are currently not able to use the never rules, e.g. 
{_}banDependencyManagementScope{_}.
 * Shouldn't this be mentioned somewhere? Or is it documented and we just 
didn't see it?

> Custom Rules are not processed with Java 17
> -------------------------------------------
>
>                 Key: MENFORCER-473
>                 URL: https://issues.apache.org/jira/browse/MENFORCER-473
>             Project: Maven Enforcer Plugin
>          Issue Type: Bug
>          Components: externalRules, Plugin, Rule API
>    Affects Versions: 3.2.1
>         Environment: Windows, Java 17
>            Reporter: Nils Christian Ehmke
>            Priority: Major
>
> Hi,
> We noticed that our custom rule, using the newer API (as documented 
> [here)|https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html]
>  is not processed using Java 17.
> We created a sample project using the custom rule example. Once we use Java 
> 17 in the pom.xml it breaks.
> {code:java}
> <properties>
>       <api.version>3.2.1</api.version>
>       <maven.version>3.9.0</maven.version>
>       <!-- use JDK 1.8 at least -->
>       <maven.compiler.source>17</maven.compiler.source>
>       <maven.compiler.target>17</maven.compiler.target>
> </properties>
> ...
> <plugin>
>       <groupId>org.apache.maven.plugins</groupId>
>       <artifactId>maven-compiler-plugin</artifactId>
>       <version>3.11.0</version>
> </plugin>
> <plugin>
>       <!-- generate index of project components -->
>       <groupId>org.eclipse.sisu</groupId>
>       <artifactId>sisu-maven-plugin</artifactId>
>       <version>0.9.0.M1</version>
>       <executions>
>               <execution>
>                       <goals>
>                               <goal>main-index</goal>
>                       </goals>
>               </execution>
>       </executions>
> </plugin>
> {code}
> If we compile the custom rule and verify the using project, we get 
> {code}
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce (enforce) on 
> project maven-enforcer-plugin-sample-usage: Execution enforce of goal 
> org.apache.maven.plugins:maven-enforcer-plugin:3.2.1:enforce failed: Failed 
> to create enforcer rules with name: myCustomRule or for class: 
> org.apache.maven.plugins.enforcer.MyCustomRule -> [Help 1]
> {code}
> The index file itself looks good, so something else within the plugin or Sisu 
> Plexus seems to break.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to