Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Bundling plugins with Hudson"

(New page: If you'd like to ship plugins pre-installed in hudson.war, you can do so by placing your plugins inside hudson.war as /WEB-INF/plugins/*.hpi. These files will be extracted whenever Hudson...)
 
 
Line 2: Line 2:
  
 
These files will be extracted whenever Hudson is started. This feature is new in Hudson 1.259.
 
These files will be extracted whenever Hudson is started. This feature is new in Hudson 1.259.
Sample
+
== Sample ==
  
 
Here is a maven pom to build a hudson webapp  bundled with your plugins
 
Here is a maven pom to build a hudson webapp  bundled with your plugins

Latest revision as of 20:44, 22 July 2013

If you'd like to ship plugins pre-installed in hudson.war, you can do so by placing your plugins inside hudson.war as /WEB-INF/plugins/*.hpi.

These files will be extracted whenever Hudson is started. This feature is new in Hudson 1.259.

Sample

Here is a maven pom to build a hudson webapp bundled with your plugins

<dependencies>

		<dependency>
			<groupId>org.jvnet.hudson.main</groupId>
			<artifactId>hudson-war</artifactId>
			<version>${org.jvnet.hudson.version}</version>
			<type>war</type>
		</dependency>

	</dependencies>

	<build>
		<plugins>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<phase>generate-sources</phase>
						<goals>
							<goal>copy</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<artifactItems>
						<artifactItem>
							<groupId>${pom.groupId}</groupId>
							<artifactId>my_plugin1</artifactId>
							<version>${pom.version}</version>
							<type>hpi</type>
							<outputDirectory>${project.build.directory}/plugins</outputDirectory>
						</artifactItem>
						<artifactItem>
							<groupId>${pom.groupId}</groupId>
							<artifactId>my_plugin2</artifactId>
							<version>${pom.version}</version>
							<type>hpi</type>
							<outputDirectory>${project.build.directory}/plugins</outputDirectory>
						</artifactItem>
					</artifactItems>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<webResources>
						<resource>
							<directory>${project.build.directory}/plugins</directory>
							<targetPath>WEB-INF/plugins</targetPath>
						</resource>
					</webResources>
				</configuration>
			</plugin>


		</plugins>
	</build>

Here is an Ant target that bundles all the plugins in the ./plugins subdirectory into a new hudson.war file.

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="Hudson-Bundle">

    <property name="src.war" value="download/hudson.war" />
    <property name="dist" value="dist" />
    <property name="plugins.dir" value="plugins" />
    
    <target name="bundle" description="Merge plugins in ./plugins into a custom hudson.war">
        <mkdir dir="${dist}" />
        <zip destfile="${dist}/hudson.war">
            <zipfileset src="${src.war}" />
            <zipfileset dir="${plugins.dir}" prefix="WEB-INF/plugins" />
        </zip>
    </target>

    <target name="distclean">
        <delete dir="${dist}" />
    </target>

</project>

Back to the top