Files
jenkins/war/pom.xml
T

398 lines
13 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.145-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>
</resource>
<resource>
<directory>${basedir}/target/generated-resources</directory>
</resource>
</webResources>
<!-- for putting Main-Class into war -->
<archive>
<manifest>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- compile src/launcher/java/Main.java into hudson.war -->
<execution>
<phase>generate-resources</phase>
<configuration>
<tasks>
<mkdir dir="target/generated-resources" />
<!-- needs to be forked because Maven doesn't seem to put tools.jar in classpath -->
<javac srcdir="src/launcher/java" includes="*.java" source="1.4" target="1.4" destdir="target/generated-resources" fork="true" debug="on" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- sign the war -->
<execution>
<id>signWar</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- see ../jnlp-agent/pom.xml for details -->
<signjar jar="target/hudson.war" alias="${hudson.sign.alias}" keystore="${hudson.sign.keystore}" storepass="${hudson.sign.storepass}" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>dependency-maven-plugin</artifactId>
<executions>
<!-- for copying remoting jar to $WAR/WEB-INF/slave.jar -->
<execution>
<id>copy-slave.jar</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jvnet.hudson.main</groupId>
<artifactId>remoting</artifactId>
<version>${version}</version>
<destFileName>slave.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${basedir}/target/generated-resources/WEB-INF</outputDirectory>
</configuration>
</execution>
<!--
for copying remoting jar to $WAR/WEB-INF/remoting.jar
-->
<execution>
<id>copy-remoting.jar</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jvnet.hudson.main</groupId>
<artifactId>remoting</artifactId>
<version>${version}</version>
<destFileName>remoting.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${basedir}/target/generated-resources/WEB-INF</outputDirectory>
</configuration>
</execution>
<!-- for copying remoting jar to $WAR/WEB-INF/jnlp-agent.jar -->
<execution>
<id>copy-jnlp-agent.jar</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jvnet.hudson.main</groupId>
<artifactId>jnlp-agent</artifactId>
<version>${version}</version>
<destFileName>jnlp-agent.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${basedir}/target/generated-resources/WEB-INF</outputDirectory>
</configuration>
</execution>
<!-- for copying winstone.jar -->
<execution>
<id>copy-winstone.jar</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>winstone</groupId>
<artifactId>winstone</artifactId>
<version>0.9.9</version>
<destFileName>winstone.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${basedir}/target/generated-resources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.2rc2</version>
<configuration>
<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>
<!--
enable automatic reloading when some files change.
-->
<!--scanIntervalSeconds>1</scanIntervalSeconds-->
<webAppSourceDirectory>${basedir}/resources</webAppSourceDirectory>
<userRealms>
<userRealm implementation="org.mortbay.jetty.security.HashUserRealm">
<name>default</name>
<config>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>jnlp-agent</artifactId>
<version>${project.version}</version>
<!--
not really a test scope, but we use dependency-maven-plugin to copy this jar,
so we don't want this to be bundled in war by maven-war-plugin.
-->
<scope>test</scope>
</dependency>
<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>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
</exclusion>
<exclusion>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly-tags-junit</artifactId>
</exclusion>
<exclusion>
<groupId>jaxme</groupId>
<artifactId>jaxme-api</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
<exclusion>
<groupId>pull-parser</groupId>
<artifactId>pull-parser</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<properties>
<HUDSON_HOME>${basedir}/work</HUDSON_HOME>
</properties>
<profiles>
<profile>
<id>hudson-libs-local</id>
<!-- if we have the libs checked out of CVS, use them directly -->
<activation>
<file>
<exists>main/lib</exists>
</file>
</activation>
<repositories>
<!-- checking the file system is fastest of all -->
<repository>
<id>hudson-libs</id>
<url>file:main/lib</url>
<layout>legacy</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- put central second to speed majority artifact resolution -->
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
<!-- only look for jars here when they are not present locally -->
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- last, but not least -->
<repository>
<id>java.net2</id>
<url>http://download.java.net/maven/2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>hudson-libs-remote</id>
<!-- otherwise, we'll have to use the slower route -->
<activation>
<file>
<missing>main/lib</missing>
</file>
</activation>
<repositories>
<!-- put central first to speed majority artifact resolution -->
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
<!-- only look for jars here when they are not present locally -->
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- put java.net2 second, as it's faster than the https CVS access -->
<repository>
<id>java.net2</id>
<url>http://download.java.net/maven/2/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- put hudson-libs last as it is the slowest to access -->
<repository>
<id>hudson-libs</id>
<url>https://hudson.dev.java.net/source/browse/*checkout*/hudson/hudson/main/lib</url>
<layout>legacy</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</project>