Files
jenkins/war/pom.xml
T

312 lines
11 KiB
XML

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jvnet.hudson.main</groupId>
<artifactId>pom</artifactId>
<version>1.265-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>hudson-war</artifactId>
<packaging>war</packaging>
<name>Hudson war</name>
<build>
<directory>target</directory>
<finalName>hudson</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.0</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/resources</directory>
<!--excludes> not much size improvements
<exclude>**/*-debug.js</exclude>
</excludes-->
</resource>
<resource>
<directory>${basedir}/target/generated-resources</directory>
</resource>
</webResources>
<!-- for putting Main-Class into war -->
<archive>
<manifest>e
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
<artifactId>maven-antrun-extended-plugin</artifactId>
<version>1.34</version>
<executions>
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- deploy the war as a jar, so that the tests can pull this into the classpath -->
<attachArtifact file="target/hudson.war" classifier="war-for-test" type="jar" />
</tasks>
</configuration>
</execution>
<execution>
<id>resgen</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<mkdir dir="target/generated-resources" />
<!-- put executable war header -->
<resolveArtifact artifactId="executable-war" property="executable-war.jar" />
<unjar src="${executable-war.jar}" dest="target/generated-resources">
<patternset>
<include name="**/*.class" />
</patternset>
</unjar>
<!-- dependencies that goes to unusual locations -->
<resolveArtifact artifactId="remoting" tofile="${basedir}/target/generated-resources/WEB-INF/remoting.jar" />
<resolveArtifact artifactId="remoting" tofile="${basedir}/target/generated-resources/WEB-INF/slave.jar" />
<resolveArtifact artifactId="winstone" tofile="${basedir}/target/generated-resources/winstone.jar" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- this is really just a patched version of maven-jetty-plugin to workaround issue #932 -->
<groupId>org.jvnet.hudson.tools</groupId>
<artifactId>maven-hudson-dev-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<contextPath>${contextPath}</contextPath>
<!--
read directly from core module's output directory,
so that changes are picked up right away without running mvn.
-->
<classesDirectory>../core/target/classes</classesDirectory>
<!-- use the test classpath for loading resources, since this takes priority -->
<testClassesDirectory>../core/src/main/resources</testClassesDirectory>
<useTestClasspath>true</useTestClasspath>
<!--
Reload webapp when you hit ENTER. (See JETTY-282 for more)
-->
<consoleForceReload>true</consoleForceReload>
<webAppSourceDirectory>${basedir}/resources</webAppSourceDirectory>
<userRealms>
<userRealm implementation="org.mortbay.jetty.security.HashUserRealm">
<name>default</name>
<config>${basedir}/src/realm.properties</config>
</userRealm>
</userRealms>
<systemProperties>
<systemProperty>
<name>HUDSON_HOME</name>
<value>${HUDSON_HOME}</value>
</systemProperty>
<systemProperty>
<!-- always reload views during debugging -->
<name>stapler.jelly.noCache</name>
<value>true</value>
</systemProperty>
<systemProperty>
<!-- load view resources from the source directly, again for real time change -->
<name>stapler.resourcePath</name>
<value>../core/src/main/resources</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jvnet.hudson.main</groupId>
<artifactId>hudson-core</artifactId>
<version>${project.version}</version>
<exclusions>
<!-- jars that are not needed in war -->
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
<exclusion>
<groupId>msv</groupId>
<artifactId>xsdlib</artifactId>
</exclusion>
<exclusion>
<groupId>msv</groupId>
<artifactId>relaxngDatatype</artifactId>
</exclusion>
<exclusion>
<groupId>forehead</groupId>
<artifactId>forehead</artifactId>
</exclusion>
<exclusion>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
<exclusion>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</exclusion>
<exclusion>
<groupId>jaxme</groupId>
<artifactId>jaxme-api</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>pull-parser</groupId>
<artifactId>pull-parser</artifactId>
</exclusion>
<!-- don't know where this is coming from -->
<exclusion>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!--
classes in this jar will be rebundled into the war.
marking it provided so that this won't show up in WEB-INF/lib
-->
<groupId>org.jvnet.hudson</groupId>
<artifactId>executable-war</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<!--
this dependency is just so that we can put winstone.jar in the war.
marking it provided so that this won't show up in WEB-INF/lib
-->
<groupId>org.jvnet.hudson.winstone</groupId>
<artifactId>winstone</artifactId>
<version>0.9.10-hudson-6</version>
<scope>provided</scope>
</dependency>
<!-- offline profiler API when we need it -->
<!--dependency>
<groupId>com.yourkit.api</groupId>
<artifactId>yjp</artifactId>
<version>dontcare</version>
<scope>system</scope>
<systemPath>/usr/local/yjp/lib/yjp.jar</systemPath>
</dependency-->
</dependencies>
<properties>
<HUDSON_HOME>${basedir}/work</HUDSON_HOME>
<contextPath>/</contextPath><!-- context path during test -->
</properties>
<pluginRepositories>
<pluginRepository>
<id>java.net2</id>
<url>http://download.java.net/maven/2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
<profiles>
<profile>
<!-- profile for creating Hudson IPS package -->
<id>ips</id>
<build>
<plugins>
<plugin>
<groupId>org.jvnet.updatecenter2</groupId>
<artifactId>maven-makepkgs-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
<configuration>
<proto>../ips/proto.py</proto>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- sign war -->
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- sign the war -->
<execution>
<id>signWar</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!--
during the development, debug profile defined in ../pom.xml will cause
the jars to be signed by a self-certified dummy public key.
For release, you should define the real values in ~/.m2/settings.xml
-->
<signjar jar="target/hudson.war" alias="${hudson.sign.alias}" keystore="${hudson.sign.keystore}" storepass="${hudson.sign.storepass}" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>