maven-3manifest.mfmaven-jar-plugin

How to override the Built-By property in the manifest?


I would like to change the manifest entry, "Built-By" to a custom string. I tried:

<plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<!--              <builtBy>TESTING</builtBy>-->
<!--              <addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>-->
            </manifest>
            <manifestEntries>
              <Implementation-Version>${project.version}</Implementation-Version>
              <Implementation-Build>${project.version}.${git.commit.id.abbrev}</Implementation-Build>

<!--              <Built-By>TESTING</Built-By>-->
              <BuiltBy>TESTING</BuiltBy>
            </manifestEntries>
          </archive>
          <resources>
            <entityReference>
              <directory>src/main/java</directory>
              <includes>
                <include>**/*properties</include>
              </includes>
            </entityReference>
          </resources>
        </configuration>
      </plugin>

However, none of those "Built-By" properties appear to have any effect. Is it possible to change?


Solution

  • The answer was very simple, I had a typo:

    <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
              <archive>
                <manifest>
                  <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                  <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
    <!--              <builtBy>TESTING</builtBy>-->
    <!--              <addBuildEnvironmentEntries>false</addBuildEnvironmentEntries>-->
                </manifest>
                <manifestEntries>
                  <Implementation-Version>${project.version}</Implementation-Version>
                  <Implementation-Build>${project.version}.${git.commit.id.abbrev}</Implementation-Build>
                  <Built-By>TESTING</Built-By>
                </manifestEntries>
              </archive>
              <resources>
                <entityReference>
                  <directory>src/main/java</directory>
                  <includes>
                    <include>**/*properties</include>
                  </includes>
                </entityReference>
              </resources>
            </configuration>
          </plugin>
    
    
    Looking at what I had above, I apparently had tried Built-By as it was commented out.  However, the above code now works.  I'm not sure when it started working on how the above example did not work.