Uploaded image for project: 'Maven EAR Plugin'
  1. Maven EAR Plugin
  2. MEAR-188

Project property cannot be resolved inside <env-entry> element

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.9
    • 2.10
    • None

    Description

      I have created simple ear project with filters. I want to use different settings for each environment and those settings should be passed to generated application.xml file inside the env-entries. The generation of ear package is done as shown below:

                  <plugin>
                      <artifactId>maven-ear-plugin</artifactId>
                      <version>2.9</version>
                      <configuration>
                          <generateApplicationXml>true</generateApplicationXml>
                          <version>6</version>
                          <envEntries>
                              <env-entry>
                                  <env-entry-name>customProperty</env-entry-name>
                                  <env-entry-type>java.lang.String</env-entry-type>
                                  <env-entry-value>${custom.property}</env-entry-value>
                              </env-entry>
                          </envEntries>
                          <applicationName>${custom.property}</applicationName>
                      </configuration>
                  </plugin>
      

      To read maven project properties from external properties file I had to use another plugin: properties-maven-plugin. It successfully reads properties from file and sets them as maven project properties, so I can insert them in pom.xml file using ${}. It works for most of the pom.xml elements (i.e. <applicationName>), unfortunately it is not successfully looked up when I place it inside env-entry element where I need it. Below is generated application.xml.

          <?xml version="1.0" encoding="UTF-8"?>
          <application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
              <application-name>default property</application-name>
              <display-name>test</display-name>
              <env-entry>
                  <env-entry-name>customProperty</env-entry-name>
                  <env-entry-type>java.lang.String</env-entry-type>
                  <env-entry-value>${custom.property}</env-entry-value>
              </env-entry>
          </application>
      

      If I put project properties inside the <properties></properties> block everything works fine, but that doesn't allow me to use filters for application.xml.

      I'm attaching maven project with all necessary configuration. I have also submitted an issue at Stackoverflow, because I didn't have account here.

      Attachments

        1. test.zip
          2 kB
          Maciej Karaś

        Activity

          People

            khmarbaise Karl Heinz Marbaise
            truecurry Maciej Karaś
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: