Thanks!  We're using Maven 3.  I just haven't refactored the pom yet.

On Mon, Jun 5, 2017 at 8:47 AM, Karl Heinz Marbaise <khmarba...@gmx.de>
wrote:

> Hi George,
>
> based on the comments in your example...
>
> Are you really using Maven 2 ? Please remove it...cause it's long end of
> life...
>
>
> Furthermore the repositories should be defined in users settings.xml and
> not inside the pom file...The distributionManagement should be done in a
> corporate pom only once...
>
> Kind regards
> Karl Heinz Marbaise
>
>
> On 05/06/17 14:42, George Kopf wrote:
>
>> Thank you for your help.  I figured it out using the tiles-maven-plugin.
>>
>> After fighting through the documentation I put together a simple tile and
>> pulled it into my pom.
>>
>> To clarify what the docs are saying:
>>
>> 1.  The tile will be called tile.xml, will be installed in your maven
>> repository along with a pom.xml that has uses the tiles-maven-plugin.
>> 2.  The project pom also uses the tiles-maven-plugin but it has the
>> configuration element to reference your tile.
>>
>>
>> Here is a concrete example of a tile for the jacoco plugin and then
>> inject the tile into your project pom.
>>
>> tile.xml
>> <?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";>
>> <build>
>>      <plugins>
>>      <plugin>
>>          <groupId>org.jacoco</groupId>
>>          <artifactId>jacoco-maven-plugin</artifactId>
>>          <version>0.7.9</version>
>>          <executions>
>>              <execution>
>>                  <id>default-prepare-agent</id>
>>                  <goals>
>>                      <goal>prepare-agent</goal>
>>                  </goals>
>>              </execution>
>>              <execution>
>>                  <id>default-report</id>
>>                  <phase>prepare-package</phase>
>>                  <goals>
>>                      <goal>report</goal>
>>                  </goals>
>>              </execution>
>>              <execution>
>>                  <id>default-check</id>
>>                  <goals>
>>                      <goal>check</goal>
>>                  </goals>
>>                  <configuration>
>>                      <rules>
>>                          <!--  implementation is needed only for Maven 2
>> -->
>>                          <rule implementation="org.jacoco.mav
>> en.RuleConfiguration">
>>                              <element>BUNDLE</element>
>>                              <limits>
>>                                  <!--  implementation is needed only for
>> Maven 2  -->
>>                                  <limit implementation="org.jacoco.rep
>> ort.check.Limit">
>>                                      <counter>COMPLEXITY</counter>
>>                                      <value>COVEREDRATIO</value>
>>                                      <minimum>0.0</minimum>
>>                                  </limit>
>>                              </limits>
>>                          </rule>
>>                      </rules>
>>                  </configuration>
>>              </execution>
>>          </executions>
>>      </plugin>
>> </plugins>
>> </build>
>> </project>
>>
>>
>>
>>
>> pom.xml that accompanies the tile.xml in your maven repository
>>
>> <?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>edu.school</groupId>
>>      <artifactId>cdp_build_tile</artifactId>
>>      <version>1.0-SNAPSHOT</version>
>>      <packaging>tile</packaging>
>>
>>      <distributionManagement>
>>          <snapshotRepository>
>>              <id>snapshots</id>
>>              <name>Nexus Repository</name>
>>              <layout>default</layout>
>>              <url>http://server.school.edu:8081/nexus/content/reposit
>> ories/snapshots</url>
>>          </snapshotRepository>
>>      </distributionManagement>
>>
>>      <repositories>
>>          <repository>
>>              <id>nexus</id>
>>              <name>Nexus Repository</name>
>>              <layout>default</layout>
>>              <url>http://server.school.edu:8081/nexus</url>
>>              <snapshots>
>>                  <enabled>true</enabled>
>>              </snapshots>
>>          </repository>
>>      </repositories>
>>      <build>
>>          <plugins>
>>              <plugin>
>>                  <groupId>io.repaint.maven</groupId>
>>                  <artifactId>tiles-maven-plugin</artifactId>
>>                  <version>2.10</version>
>>                  <extensions>true</extensions>
>>              </plugin>
>>          </plugins>
>>      </build>
>> </project>
>>
>>
>> build section of your project's pom
>>      <build>
>>          <plugins>
>>              <plugin>
>>                  <groupId>io.repaint.maven</groupId>
>>                  <artifactId>tiles-maven-plugin</artifactId>
>>                  <version>2.10</version>
>>                  <extensions>true</extensions>
>>                  <configuration>
>>                      <filtering>false</filtering>
>>                      <tiles>
>>                          <tile>edu.school:cdp_build_ti
>> le:1.0-SNAPSHOT</tile>
>>                      </tiles>
>>                  </configuration>
>>              </plugin>
>>          </plugins>
>>      </build>
>>
>>
>>
>>
>>
>> On Tue, May 30, 2017 at 1:25 PM, Karl Heinz Marbaise <khmarba...@gmx.de
>> <mailto:khmarba...@gmx.de>> wrote:
>>
>>     Hi,
>>
>>     On 30/05/17 16:44, George Kopf wrote:
>>
>>         I apologize if this topic has already been discussed.  I
>>         searched all over
>>         the web and the archives and didn't find anything, but I can't
>>         believe that
>>         I'm the only person with this request.
>>
>>
>>     No need to apologize for asking...
>>
>>
>>         I'm running the CI/CD pipeline for several java projects.
>>
>>         We're using Git, Maven, Jenkins, Sonar, and Nexus.
>>
>>         I would like to to have the developers create and own their own
>>         POM.XML
>>         that will be used for Snapshots and Release Candidates.
>>
>>
>>     and in consequence also for releases ?
>>
>>
>>         I want to add my build specific POM elements to the effective
>>         POM for the
>>         CI process but I don't want their POM to have to include all the
>>         extra
>>         elements for Jacoco and Sonar (and whatever else we add in the
>>         future >
>>         I can do this with profiles but then their POM will have
>>         everything in it.
>>         I can do this with a parent POM but they already have a parent POM
>>         (springboot) so that they can run locally.
>>
>>
>>     If you have springboot as parent it might be a good choice to use
>>     spring as bom instead of as a parent...than you can control things
>>     different and better...
>>
>>     Does it not work ?
>>
>>     So where is the difference for a CI pom and usual pom file ?
>>
>>     >
>>     I would have to insert my
>>
>>         parent pom in between and that seems fragile since mine is only
>>         for CI
>>         builds.
>>
>>
>>     What exactly is fragile here?
>>
>>
>>
>>         I can't do this with the settings.xml, on the build server,
>>         because it
>>         doesn't have all the required elements.
>>
>>
>>     Sure the settings.xml has a different purpose...
>>
>>
>>         I hope that there is something obvious that I've missed (like a
>>         Jenkins
>>         plugin) but I'm about to give up and just require the developers
>>         to live
>>         with an excessively complicated POM file.
>>
>>
>>
>>     Maybe it's worth to take al look at the tiles-maven-plugin[1] which
>>     might help here...
>>
>>
>>     Maybe you can give an example what becomes so long or complicated ?
>>
>>
>>     Kind regards
>>
>


-- 
George Kopf

Reply via email to