properties in maven-remote-resources-plugin

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

properties in maven-remote-resources-plugin

Delany
I don't want to hardcode the version number of the remote project into this
plugin config, so I've used a property made available in a parent pom.
But it's not being resolved. What am I doing wrong?

      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>process-remote-resources</id>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>

<resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
              </resourceBundles>
            </configuration>
          </execution>
        </executions>
      </plugin>

There's a mention of including a <properties> tag that is a map, but Im not
sure what that should look like.

https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html

Thanks,
Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Delany
Well I gave it my best shot

      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>process-remote-resources</id>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>
                <resourceBundle>dbs:commondb:${bully}</resourceBundle>
              </resourceBundles>
              <properties>
                <bully>3</bully>
              </properties>
            </configuration>
          </execution>
        </executions>
      </plugin>

It looks like the process goal has been abandoned and everyone is just
using maven-dependency-plugin's unpack-dependencies goal.


On Tue, 23 Feb 2021 at 13:34, Delany <[hidden email]> wrote:

> I don't want to hardcode the version number of the remote project into
> this plugin config, so I've used a property made available in a parent pom.
> But it's not being resolved. What am I doing wrong?
>
>       <plugin>
>         <artifactId>maven-remote-resources-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>process-remote-resources</id>
>             <goals>
>               <goal>process</goal>
>             </goals>
>             <configuration>
>               <resourceBundles>
>
> <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
>               </resourceBundles>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>
> There's a mention of including a <properties> tag that is a map, but Im
> not sure what that should look like.
>
> https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html
>
> Thanks,
>
Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Anthony Whitford
In reply to this post by Delany
The <properties> tag is documented here: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties>


> On Feb 23, 2021, at 3:34 AM, Delany <[hidden email]> wrote:
>
> I don't want to hardcode the version number of the remote project into this
> plugin config, so I've used a property made available in a parent pom.
> But it's not being resolved. What am I doing wrong?
>
>      <plugin>
>        <artifactId>maven-remote-resources-plugin</artifactId>
>        <executions>
>          <execution>
>            <id>process-remote-resources</id>
>            <goals>
>              <goal>process</goal>
>            </goals>
>            <configuration>
>              <resourceBundles>
>
> <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
>              </resourceBundles>
>            </configuration>
>          </execution>
>        </executions>
>      </plugin>
>
> There's a mention of including a <properties> tag that is a map, but Im not
> sure what that should look like.
>
> https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html
>
> Thanks,

Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Delany
Thanks I know how to use properties, but this plugin doesn't, it seems. It has some special way of importing them:



It can do this

<resourceBundle>org.test:shared-resources:${project.version}</resourceBundle>

But this is the version of this project, not the resource bundle org.test:shared-resources. Why would I ever do that? The plugin is assuming that all project modules in the reactor have the same version.

I need it to do this

<resourceBundle>org.test:shared-resources:${shared-resources.version}</resourceBundle>

It looks like if I make commondb a dependency, I can use the projects property to access the version number. How do I do that?

Thanks,
Delany


On Tue, 23 Feb 2021 at 22:46, Anthony Whitford <[hidden email]> wrote:
The <properties> tag is documented here: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties>


> On Feb 23, 2021, at 3:34 AM, Delany <[hidden email]> wrote:
>
> I don't want to hardcode the version number of the remote project into this
> plugin config, so I've used a property made available in a parent pom.
> But it's not being resolved. What am I doing wrong?
>
>      <plugin>
>        <artifactId>maven-remote-resources-plugin</artifactId>
>        <executions>
>          <execution>
>            <id>process-remote-resources</id>
>            <goals>
>              <goal>process</goal>
>            </goals>
>            <configuration>
>              <resourceBundles>
>
> <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
>              </resourceBundles>
>            </configuration>
>          </execution>
>        </executions>
>      </plugin>
>
> There's a mention of including a <properties> tag that is a map, but Im not
> sure what that should look like.
>
> https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html
>
> Thanks,

Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Anthony Whitford
I’m honestly unclear on your precise scenario.
1.  If you are expecting a dependency to have a pom with a variable in it, that then you would specify before using it, then Maven doesn’t work that way.  (And if you think about it, it creates a chicken-egg problem.)
2.  If you are expecting to use a pom property from a dependency, then you can’t do that either.  (And if you think about it, that could be dangerous because children properties could collide or interfere with your own.)

Note that you can declare a dependency/plugin and override a dependency — sometimes that is useful.

I highly recommend  `mvn help:effective-pom` to see exactly what a project’s pom results look like; it can be insightful.

You can also use  `mvn help:evaluate` to see the value of expressions.

This is also a good reference:  https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html <https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html>

Hope this helps,

Anthony


> On Feb 23, 2021, at 11:32 PM, Delany <[hidden email]> wrote:
>
> Thanks I know how to use properties, but this plugin doesn't, it seems. It has some special way of importing them:
> https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html <https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html>
>
>
>
> It can do this
>
> <resourceBundle>org.test:shared-resources:${project.version}</resourceBundle>
>
> But this is the version of this project, not the resource bundle org.test:shared-resources. Why would I ever do that? The plugin is assuming that all project modules in the reactor have the same version.
>
> I need it to do this
>
> <resourceBundle>org.test:shared-resources:${shared-resources.version}</resourceBundle>
>
> It looks like if I make commondb a dependency, I can use the projects property to access the version number. How do I do that?
>
> Thanks,
> Delany
>
>
> On Tue, 23 Feb 2021 at 22:46, Anthony Whitford <[hidden email] <mailto:[hidden email]>> wrote:
> The <properties> tag is documented here: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties> <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties>>
>
>
> > On Feb 23, 2021, at 3:34 AM, Delany <[hidden email] <mailto:[hidden email]>> wrote:
> >
> > I don't want to hardcode the version number of the remote project into this
> > plugin config, so I've used a property made available in a parent pom.
> > But it's not being resolved. What am I doing wrong?
> >
> >      <plugin>
> >        <artifactId>maven-remote-resources-plugin</artifactId>
> >        <executions>
> >          <execution>
> >            <id>process-remote-resources</id>
> >            <goals>
> >              <goal>process</goal>
> >            </goals>
> >            <configuration>
> >              <resourceBundles>
> >
> > <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
> >              </resourceBundles>
> >            </configuration>
> >          </execution>
> >        </executions>
> >      </plugin>
> >
> > There's a mention of including a <properties> tag that is a map, but Im not
> > sure what that should look like.
> >
> > https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html <https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html>
> >
> > Thanks,
>

Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Delany
I didn't want to give you all the context, because that complicates the problem which I carefully worded in the initial email:

"I don't want to hardcode the version number of the remote project into this plugin config, so I've used a property made available in a parent pom."

The fact that I don't use that version number property in the project that bundles the remote resources is immaterial. The problem is that the process goal in this receiving project will recognize one property "project.version" and not another "dep.dbs.commondb". It does that because project.version is one of the default properties the plugin passes through to its templating logic, I quote

"Additional properties to be passed to Velocity. Several properties are automatically added:"

So has anyone ever successfully passed through a non-default property? Or is this dead code no one ever uses.
The example given here demonstrates using the project.version property. But you don't need to use the properties tag for that. There are no examples showing the use of the properties tag of this goal.



The link at the bottom is to some generic javadoc about properties, and it happens to be dead.

Thanks,

On Sat, 27 Feb 2021 at 05:47, Anthony Whitford <[hidden email]> wrote:
I’m honestly unclear on your precise scenario.
1.  If you are expecting a dependency to have a pom with a variable in it, that then you would specify before using it, then Maven doesn’t work that way.  (And if you think about it, it creates a chicken-egg problem.)
2.  If you are expecting to use a pom property from a dependency, then you can’t do that either.  (And if you think about it, that could be dangerous because children properties could collide or interfere with your own.)

Note that you can declare a dependency/plugin and override a dependency — sometimes that is useful.

I highly recommend  `mvn help:effective-pom` to see exactly what a project’s pom results look like; it can be insightful.

You can also use  `mvn help:evaluate` to see the value of expressions.

This is also a good reference:  https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html <https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html>

Hope this helps,

Anthony


> On Feb 23, 2021, at 11:32 PM, Delany <[hidden email]> wrote:
>
> Thanks I know how to use properties, but this plugin doesn't, it seems. It has some special way of importing them:
> https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html <https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html>
>
>
>
> It can do this
>
> <resourceBundle>org.test:shared-resources:${project.version}</resourceBundle>
>
> But this is the version of this project, not the resource bundle org.test:shared-resources. Why would I ever do that? The plugin is assuming that all project modules in the reactor have the same version.
>
> I need it to do this
>
> <resourceBundle>org.test:shared-resources:${shared-resources.version}</resourceBundle>
>
> It looks like if I make commondb a dependency, I can use the projects property to access the version number. How do I do that?
>
> Thanks,
> Delany
>
>
> On Tue, 23 Feb 2021 at 22:46, Anthony Whitford <[hidden email] <mailto:[hidden email]>> wrote:
> The <properties> tag is documented here: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties> <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties <https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#properties>>
>
>
> > On Feb 23, 2021, at 3:34 AM, Delany <[hidden email] <mailto:[hidden email]>> wrote:
> >
> > I don't want to hardcode the version number of the remote project into this
> > plugin config, so I've used a property made available in a parent pom.
> > But it's not being resolved. What am I doing wrong?
> >
> >      <plugin>
> >        <artifactId>maven-remote-resources-plugin</artifactId>
> >        <executions>
> >          <execution>
> >            <id>process-remote-resources</id>
> >            <goals>
> >              <goal>process</goal>
> >            </goals>
> >            <configuration>
> >              <resourceBundles>
> >
> > <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
> >              </resourceBundles>
> >            </configuration>
> >          </execution>
> >        </executions>
> >      </plugin>
> >
> > There's a mention of including a <properties> tag that is a map, but Im not
> > sure what that should look like.
> >
> > https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html <https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html>
> >
> > Thanks,
>

Reply | Threaded
Open this post in threaded view
|

Re: properties in maven-remote-resources-plugin

Hervé BOUTEMY
please try to write:

  <properties>
    <dep.dbs.commondb>1.12</dep.dbs.commondb>
  <properties>

in you pom.xml = it defines a custom property with the value you want

this will permit "<resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>" to get the value replaced

Notice that images are removed, then we don't understand what you're trying to show

Regards,

Hervé

Le samedi 27 février 2021, 08:03:33 CET Delany a écrit :

> I didn't want to give you all the context, because that complicates the
> problem which I carefully worded in the initial email:
>
> "I don't want to hardcode the version number of the remote project into
> this plugin config, so I've used a property made available in a parent pom."
>
> The fact that I don't use that version number property in the project that
> bundles the remote resources is immaterial. The problem is that the process
> goal in this receiving project will recognize one property
> "project.version" and not another "dep.dbs.commondb". It does that because
> project.version is one of the default properties the plugin passes through
> to its templating logic, I quote
>
> "Additional properties to be passed to Velocity. Several properties are
> automatically added:"
> https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.
> html#properties
>
> So has anyone ever successfully passed through a non-default property? Or
> is this dead code no one ever uses.
> The example given here
> <https://maven.apache.org/plugins/maven-remote-resources-plugin/examples/sha
> ring-resources.html> demonstrates using the project.version property. But
> you don't need to use the properties tag for that. There are no examples
> showing the use of the properties tag of this goal.
>
> [image: image.png]
>
> The link at the bottom is to some generic javadoc about properties, and it
> happens to be dead.
>
> Thanks,
>
> On Sat, 27 Feb 2021 at 05:47, Anthony Whitford <[hidden email]> wrote:
> > I’m honestly unclear on your precise scenario.
> > 1.  If you are expecting a dependency to have a pom with a variable in it,
> > that then you would specify before using it, then Maven doesn’t work that
> > way.  (And if you think about it, it creates a chicken-egg problem.)
> > 2.  If you are expecting to use a pom property from a dependency, then you
> > can’t do that either.  (And if you think about it, that could be dangerous
> > because children properties could collide or interfere with your own.)
> >
> > Note that you can declare a dependency/plugin and override a dependency —
> > sometimes that is useful.
> >
> > I highly recommend  `mvn help:effective-pom` to see exactly what a
> > project’s pom results look like; it can be insightful.
> >
> > You can also use  `mvn help:evaluate` to see the value of expressions.
> >
> > This is also a good reference:
> > https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-p
> > roperties.html <
> > https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-p
> > roperties.html
> >
> >
> > Hope this helps,
> >
> > Anthony
> >
> > > On Feb 23, 2021, at 11:32 PM, Delany <[hidden email]> wrote:
> > >
> > > Thanks I know how to use properties, but this plugin doesn't, it seems.
> >
> > It has some special way of importing them:
> >
> > https://maven.apache.org/plugins/maven-remote-resources-plugin/process-moj
> > o.html <
> > https://maven.apache.org/plugins/maven-remote-resources-plugin/process-moj
> > o.html>
> > > It can do this
> >
> > <resourceBundle>org.test:shared-resources:${project.version}</resourceBund
> > le>>
> > > But this is the version of this project, not the resource bundle
> >
> > org.test:shared-resources. Why would I ever do that? The plugin is
> > assuming
> > that all project modules in the reactor have the same version.
> >
> > > I need it to do this
> >
> > <resourceBundle>org.test:shared-resources:${shared-resources.version}</res
> > ourceBundle>>
> > > It looks like if I make commondb a dependency, I can use the projects
> >
> > property to access the version number. How do I do that?
> >
> > > Thanks,
> > > Delany
> > >
> > >
> > > On Tue, 23 Feb 2021 at 22:46, Anthony Whitford <[hidden email]
> >
> > <mailto:[hidden email]>> wrote:
> > > The <properties> tag is documented here:
> > https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#
> > properties <
> > https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#
> > properties> <
> > https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#
> > properties <
> > https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#
> > properties>
> > > > On Feb 23, 2021, at 3:34 AM, Delany <[hidden email]
> >
> > <mailto:[hidden email]>> wrote:
> > > > I don't want to hardcode the version number of the remote project into
> >
> > this
> >
> > > > plugin config, so I've used a property made available in a parent pom.
> > > > But it's not being resolved. What am I doing wrong?
> > > >
> > > >      <plugin>
> > > >      
> > > >        <artifactId>maven-remote-resources-plugin</artifactId>
> > > >        <executions>
> > > >        
> > > >          <execution>
> > > >          
> > > >            <id>process-remote-resources</id>
> > > >            <goals>
> > > >            
> > > >              <goal>process</goal>
> > > >            
> > > >            </goals>
> > > >            <configuration>
> > > >            
> > > >              <resourceBundles>
> > > >
> > > > <resourceBundle>dbs:commondb:${dep.dbs.commondb}</resourceBundle>
> > > >
> > > >              </resourceBundles>
> > > >            
> > > >            </configuration>
> > > >          
> > > >          </execution>
> > > >        
> > > >        </executions>
> > > >      
> > > >      </plugin>
> > > >
> > > > There's a mention of including a <properties> tag that is a map, but
> >
> > Im not
> >
> > > > sure what that should look like.
> >
> > https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html
> > <https://maven.apache.org/plugins/maven-remote-resources-plugin/usage.html
> >
> > > > Thanks,





---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]