Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: XML
Posted by: Jose Fernando Lopez Fernandez
Added: May 31, 2018 2:29 AM
Modified: May 31, 2018 2:30 AM
Views: 13
This is a pretty generic Maven project configuration file I made a few weeks ago for a test project. It includes JUnit version 4.11 and generates documentation using the maven javadoc plugin. I commented out sections I didn't use, but I did include them in case anyone is curious about how those sections fit in, or even what sections are possible to include in a pom.xml file.
  1. <!-- Source: https://maven.apache.org/pom.html -->
  2.  
  3. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  5.  
  6.   <modelVersion>4.0.0</modelVersion>
  7.  
  8.   <!-- Basic Project Information and Metadata -->
  9.   <groupId>com.mycompany.app</groupId>
  10.   <artifactId>my-app</artifactId>
  11.   <version>1.0-SNAPSHOT</version>
  12.   <packaging>jar</packaging>
  13.  
  14.   <dependencies>
  15.     <dependency>
  16.       <groupId>junit</groupId>
  17.       <artifactId>junit</artifactId>
  18.       <version>4.11</version>
  19.       <scope>test</scope>
  20.     </dependency>
  21.   </dependencies>
  22.  
  23.   <!-- <parent></parent> -->
  24.   <dependencyManagement></dependencyManagement>
  25.   <!--<modules></modules>-->
  26.   <properties>
  27.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  28.         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  29.   </properties>
  30.  
  31.   <!-- Build Settings -->
  32.   <build>
  33.         <directory>${project.basedir}/target</directory>
  34.         <outputDirectory>${project.build.directory}/classes</outputDirectory>
  35.         <finalName>my-webapp</finalName>
  36.         <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
  37.         <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
  38.         <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
  39.         <testSourceDirectory>${project.basedir}.src/test/java</testSourceDirectory>
  40.        
  41.         <defaultGoal>package</defaultGoal>
  42.        
  43.         <!--<resources>
  44.                 <resource>
  45.                         <directory>${project.basedir}/src/main/resources</directory>
  46.                 </resource>
  47.         </resources>-->
  48.        
  49.         <plugins>
  50.                 <!-- Build an executable JAR -->
  51.                 <plugin>
  52.                         <groupId>org.apache.maven.plugins</groupId>
  53.                         <artifactId>maven-jar-plugin</artifactId>
  54.                         <version>3.1.0</version>
  55.                         <extensions>false</extensions>
  56.                         <inherited>true</inherited>
  57.                         <configuration>
  58.                                 <classifier>test</classifier>
  59.                                
  60.                                 <archive>
  61.                                         <manifest>
  62.                                                 <addClasspath>true</addClasspath>
  63.                                                 <classpathPrefix>lib/</classpathPrefix>
  64.                                                 <mainClass>com.mycompany.app.App</mainClass>
  65.                                         </manifest>
  66.                                 </archive>
  67.                         </configuration>
  68.                 </plugin>
  69.                
  70.                 <!-- Source: https://maven.apache.org/guides/mini/guide-using-ant.html -->
  71.                 <plugin>
  72.                         <artifactId>maven-antrun-plugin</artifactId>
  73.                         <version>1.1</version>
  74.                         <executions>
  75.                                 <execution>
  76.                                         <id>echodir</id>
  77.                                        
  78.                                         <goals>
  79.                                                 <goal>run</goal>
  80.                                         </goals>
  81.                                        
  82.                                         <phase>verify</phase>
  83.                                         <inherited>false</inherited>
  84.                                        
  85.                                         <configuration>
  86.                                                 <tasks>
  87.                                                         <echo>Build Dir: ${project.build.directory}</echo>
  88.                                                 </tasks>
  89.                                         </configuration>
  90.                                 </execution>
  91.                         </executions>
  92.                 </plugin>
  93.                
  94.                 <!-- Pass-in compiler command-line arguments -->
  95.                 <plugin>
  96.                         <groupId>org.apache.maven.plugins</groupId>
  97.                         <artifactId>maven-compiler-plugin</artifactId>
  98.                         <version>3.7.0</version>
  99.                         <configuration>
  100.                                 <source>10</source>
  101.                                 <target>10</target>
  102.                                 <compilerArgs>
  103.                                         <arg>-verbose</arg>
  104.                                         <arg>-Xlint:all,-options,-path</arg>
  105.                                 </compilerArgs>
  106.                         </configuration>
  107.                 </plugin>
  108.                
  109.                 <plugin>
  110.                         <artifactId>maven-myquery-plugin</artifactId>
  111.                         <version>1.0</version>
  112.                         <configuration>
  113.                                 <url>http://maven.apache.org</url>
  114.                                 <timeout>10</timeout>
  115.                                 <options>
  116.                                         <option>one</option>
  117.                                         <option>two</option>
  118.                                         <option>three</option>
  119.                                 </options>
  120.                         </configuration>
  121.                 </plugin>
  122.                
  123.                 <!-- Generate Javadoc Documentation -->
  124.                 <plugin>
  125.                         <groupId>org.apache.maven.plugins</groupId>
  126.                         <artifactId>maven-javadoc-plugin</artifactId>
  127.                         <version>2.6</version>
  128.                         <configuration>
  129.                                 <show>private</show>
  130.                                 <show>public</show>
  131.                                 <tagletArtifacts>
  132.                                         <tagletArtifact>
  133.                                                 <groupId>org.apache.maven.plugin-tools</groupId>
  134.                                                 <artifactId>maven-plugin-tools-javadoc</artifactId>
  135.                                                 <version>3.5.1</version>
  136.                                         </tagletArtifact>
  137.                                 </tagletArtifacts>
  138.                         </configuration>
  139.                 </plugin>
  140.                
  141.                 <!-- TODO: Create an assembly
  142.                 <plugin>
  143.                         <artifactId>maven-assembly-plugin</artifactId>
  144.                         <version>2.5.3</version>
  145.                         <configuration>
  146.                                 <descriptor>src/assembly/dep.xml</descriptor>
  147.                         </configuration>
  148.                         <executions>
  149.                                 <execution>
  150.                                         <id>create-archive</id>
  151.                                         <phase>package</phase>
  152.                                         <goals>
  153.                                                 <goal>single</goal>
  154.                                         </goals>
  155.                                 </execution>
  156.                         </executions>
  157.                 </plugin>-->
  158.                
  159.         </plugins>
  160.   </build>
  161.  
  162.   <reporting>
  163.         <outputDirectory>${project.build.directory}/site</outputDirectory>
  164.   </reporting>
  165.  
  166.   <!-- Project Information -->
  167.   <name>ProjectName</name>
  168.   <description>ProjectDescription</description>
  169.   <url>http://www.ProjectUrl</url>
  170.   <inceptionYear>2018</inceptionYear>
  171.  
  172.   <licenses>
  173.         <license>
  174.                 <name>Apache License, Version 2.0</name>
  175.                 <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
  176.                 <distribution>repo</distribution>
  177.                 <comments>A business-firendly OSS license</comments>
  178.         </license>
  179.   </licenses>
  180.  
  181.   <organization>
  182.         <name>Southern New Hampshire University</name>
  183.         <url>https://www.snhu.edu</url>
  184.   </organization>
  185.  
  186.   <developers>
  187.         <developer>
  188.                 <id>jflopezfernandez</id>
  189.                 <name>Author Name</name>
  190.                 <email>authoremail@address.com</email>
  191.                 <organization>OrganizationName</organization>
  192.                 <organizationUrl>https://www.org-url.com</organizationUrl>
  193.                
  194.                 <roles>
  195.                         <role>architect</role>
  196.                         <role>developer</role>
  197.                 </roles>
  198.                
  199.                 <timezone>America/New_York</timezone>
  200.                
  201.                 <properties>
  202.                         <!-- TODO: Add picture <picUrl></picUrl>-->
  203.                 </properties>
  204.         </developer>
  205.   </developers>
  206.  
  207.   <!--<contributors>
  208.         <contributor>
  209.                 <name>Noelle</name>
  210.                 <email>some.name@gmail.com</email>
  211.                 <url>http://noellemarie.com</url>
  212.                 <organization>Noelle Marie</organization>
  213.                 <organizationUrl>http://noellemarie.com</organizationUrl>
  214.                 <roles>
  215.                         <role>tester</role>
  216.                 </roles>
  217.                 <timezone>America/Vancouver</timezone>
  218.                 <properties>
  219.        <gtalk>some.name@gmail.com</gtalk>
  220.                 </properties>
  221.    </contributor>
  222.  </contributors>-->
  223.  
  224.   <!-- Environment Settings -->
  225.   <!-- TODO: Add issue management
  226.  <issueManagement>
  227.         <system>Bugzilla</system>
  228.         <url>http://127.0.0.1/bugzilla</url>
  229.  </issueManagement>-->
  230.  
  231.   <!-- TODO: Add CI Management
  232.  <ciManagement>
  233.         <system>continuum</system>
  234.         <url>http://127.0.0.1:8080/continuum</url>
  235.        
  236.         <notifiers>
  237.                 <notifier>
  238.                         <type>mail</type>
  239.                         <sendOnError>true</sendOnError>
  240.                         <sendOnFailure>true</sendOnFailure>
  241.                         <sendOnSuccess>false</sendOnSuccess>
  242.                         <sendOnWarning>false</sendOnWarning>
  243.                        
  244.                         <configuration>
  245.                                 <address>continuum@127.0.0.1</address>
  246.                         </configuration>
  247.                 </notifier>
  248.         </notifiers>
  249.  </ciManagement>-->
  250.  
  251.   <!-- TODO: Add mailing list
  252.  <mailingLists>
  253.         <mailingList>
  254.                 <name>User List</name>
  255.                 <subscribe>user-subscribe@127.0.0.1</subscribe>
  256.                 <unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
  257.                 <post>user@127.0.0.1</post>
  258.                 <archive>http://127.0.0.1/user/</archive>
  259.                 <otherArchives>
  260.                         <otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive>
  261.                 </otherArchives>
  262.         </mailingList>
  263.  </mailingLists>-->
  264.  
  265.   <!-- TODO: Add source control
  266.  <scm>
  267.         <connection>scm:svn:http://127.0.0.1/svn/my-project</connection>
  268.         <developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection>
  269.         <tag>HEAD</tag>
  270.         <url>http://127.0.0.1/websvn/my-project</url>
  271.  </scm>-->
  272.  
  273.   <!-- TODO: Use the maven enforcer plugin
  274.  <prerequisites>
  275.         <maven>2.0.9</maven>
  276.  </prerequisites>-->
  277.  
  278.   <!-- TODO: Add repositories (COPIED And PASTED)
  279.  <repositories>
  280.    <repository>
  281.      <releases>
  282.        <enabled>false</enabled>
  283.        <updatePolicy>always</updatePolicy>
  284.        <checksumPolicy>warn</checksumPolicy>
  285.      </releases>
  286.      <snapshots>
  287.        <enabled>true</enabled>
  288.        <updatePolicy>never</updatePolicy>
  289.        <checksumPolicy>fail</checksumPolicy>
  290.      </snapshots>
  291.      <id>codehausSnapshots</id>
  292.      <name>Codehaus Snapshots</name>
  293.      <url>http://snapshots.maven.codehaus.org/maven2</url>
  294.      <layout>default</layout>
  295.    </repository>
  296.  </repositories>
  297.  <pluginRepositories>
  298.    ...
  299.  </pluginRepositories>-->
  300.  
  301.   <!-- TODO: Add distribution management
  302.  <distributionManagement>
  303.         <downloadUrl>http://mojo.codehaus.org/my-project</downloadUrl>
  304.         <status>deployed</status>
  305.  </distributionManagement>-->
  306.  
  307.   <profiles></profiles>
  308. </project>