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