Hi,

On 26/10/18 10:16, Matthieu BROUILLARD wrote:
Not sure but I think the mechanism extension does not work for SNAPSHOT
versions.


No. There is something else different/wrong...


Try to install a non SNAPSHOT version in your local maven repository.
I think I have already faced the same in the past while producing with my
own extension https://github.com/jgitver/jgitver-maven-plugin

Hope it helps.

Matthieu

On Fri, Oct 26, 2018 at 7:39 AM J. Lewis Muir <jlm...@imca-cat.org> wrote:

Hello, all!

I'm trying to use the EL Profile Activation Maven Extension

   https://github.com/kpiwko/el-profile-activator-extension

to activate a profile when the foo_env system property is either not
set, or set to "development".  I'm using the "help:active-profiles" goal
of the Maven Help plugin and the "validate" phase to test whether or not
a profile is active.

The extension works when I install it in

   <maven-home>/lib/ext

and it works when I specify it on the command line with

   -Dmaven.ext.class.path=<paths-to-extension-jars>

but it does *not* work when I put it in the project's

   .mvn/extensions.xml

Does anyone know why?!

This is Maven 3.5.4, the latest Git snapshot of EL Profile Activation
Maven Extension, and MVEL 2.4.2.Final.

The el-profile-activator-extension artifact is not published in the
Central Repository, but I installed it into my local repository (i.e.,
~/.m2/repository) with

   git clone https://github.com/kpiwko/el-profile-activator-extension.git
   cd el-profile-activator-extension
   : JAVA_HOME has been set to a Java 8 SDK to compile
   mvn install

That should be fine, right?  My local repository will be searched first
for any artifacts listed in extensions.xml, and I don't get a warning
nor error about it not being found, so my understanding is that this is
OK.

For the case where the extension does not work, I have a test-01 project
directory containing the following pom.xml file

   <?xml version="1.0" encoding="UTF-8"?>
   <project xmlns="http://maven.apache.org/POM/4.0.0";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
           http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.example.foo</groupId>
     <artifactId>foo</artifactId>
     <version>1.0.0</version>
     <packaging>pom</packaging>
     <profiles>
       <profile>
         <id>foo_env-development</id>
         <activation>
           <property>
             <name>mvel</name>
             <value>(!isdef foo_env) || (isdef foo_env &amp;&amp; foo_env
== "development")</value>
           </property>
         </activation>
       </profile>
     </profiles>
   </project>

and the following .mvn/extensions.xml file

   <extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0
           http://maven.apache.org/xsd/core-extensions-1.0.0.xsd";>
     <extension>
       <groupId>com.redhat.jboss.maven</groupId>
       <artifactId>el-profile-activator-extension</artifactId>
       <version>1.0.0-SNAPSHOT</version>
     </extension>
   </extensions>

I invoke Maven like this

   mvn help:active-profiles validate

and it shows that the foo_env-development profile is not active (i.e.,
it lists no active profiles)

   The following profiles are active:

but it should be!

A transcript of this and with the "-X" option is attached as

   test-01-extensions-dot-xml.txt

Removing the .mvn directory and adding

   el-profile-activator-extension-1.0.0-SNAPSHOT.jar

and

   mvel2-2.4.2.Final.jar

to

   <maven-home>/lib/ext

works; i.e., it shows that the foo_env-development profile is active

   The following profiles are active:

    - foo_env-development (source: org.example.foo:foo:1.0.0)

A transcript of this and with the "-X" option is attached as

   test-01-maven-home-lib-ext.txt

Removing those JARs from

   <maven-home>/lib/ext

and instead specifying them on the command line by setting the

   maven.ext.class.path

system property works; i.e., it shows that the foo_env-development
profile is active

   The following profiles are active:

    - foo_env-development (source: org.example.foo:foo:1.0.0)

A transcript of this and with the "-X" option is attached as

   test-01-maven-ext-class-path.txt

Any help getting the extensions.xml case to work would be greatly
appreciated!  Thank you!

Lewis

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to