Maven plugin to build Jenkins plugins. See the developer guide for details.
See GitHub Releases
- Treat POM loading errors in dependencies as nonfatal.
- JENKINS-54807 -
Fix classloading of Java-internal modules when running
hpi:runwith Java 11
- PR #90 -
Introduce a new
hpi.compatibleSinceVersionproperty to support marking plugins as incompatible without the plugin configuration override
- Prevents issues like JENKINS-55562
- JENKINS-54949 -
Add support of adding the current pom.xml to the custom WAR
hpi:runwas broken since 3.0 since
minimumJavaVersionwas not being properly propagated.
- JENKINS-20679 -
Minimum-Java-Versioninto the manifest.
- It is set by a new mandatory
java.specification.versionaccording to Java JEP-223. Examples:
- It is set by a new mandatory
- PR #83 - Improve the error message when an improper JAR file is passed
- Internal: Move manifest-related parameters and logic to
work/plugins/*.jplwhere the current
test-scoped dependency is not in fact a snapshot.
- Use a more specific temp dir for Jetty.
2.6 (2018 Jun 01)
- Bugs in the dependency copy of
mvn hpi:runcould lead to anomalies such as
2.5 (2018 May 11)
- Option to override a snapshot plugin version with a more informative string.
2.3 (2018 Apr 19)
- Using a newer standard
VersionNumberthat precisely matches the behavior of the Jenkins plugin manager.
2.2 (2018 Jan 30)
mvn clean hpi:runand some similar special goal sequences.
2.1 (2017 Sep 26)
- Jenkins plugin archetypes are no longer bundled with this Maven plugin. Instead use the new project.
- Fixing unchecked/rawtypes warnings in
- No more special handling of artifacts with
-eain the version.
2.0 (2017 May 25)
- Updated integrated Jetty server to 9.x. This means that JDK 8 is now required at build time. (Plugins may continue to target older Java baselines using the
java.levelproperty in the 2.x parent POM.)
- JENKINS-24064 Added
executable-warartifact type, permitting Jenkins to stop deploying the wasteful
jenkins-war-*-war-for-test.jarartifact, which was identical to
1.122 (2017 Apr 12)
- Fixed HTML escaping for Javadoc created for taglibs so it can be processed by JDK 8.
- Logging the current artifact for
- More fixes to mojos that assumed that plugin artifacts used a short name identical to the
- Minor archetype updates.
1.121 (2016 Dec 16)
- Fixing a problem with plugin dependency resolution affecting users of jitpack.io.
1.120 (2016 Sep 26)
hpi:runto pick up compiled classes & saved resources from core or plugin snapshot dependencies in addition to the plugin under test itself.
Plugin-Dependenciesappears in a consistent order from build to build.
1.119 and earlier
mvn -Prun-its clean install # Find some plugin using the 2.x parent POM and run: mvn -f ../some-plugin -Dhpi-plugin.version=2.XXX-SNAPSHOT -DskipTests -DjenkinsHome=/tmp/sanity-check-maven-hpi-plugin clean package hpi:run
You can also rerun one test:
mvn -Prun-its mrm:start invoker:run mrm:stop -Dinvoker.test=parent-3x
To rerun just the verification script:
groovy -e "basedir='$(pwd)/target/its/parent-3x'; evaluate new File('src/it/parent-3x/verify.groovy')"
Also make sure
src/it/parent-3x/pom.xml is the latest.
hpi:run mojo is a variant of
jetty:run mojo, and because of the way plugin descriptor is generated, this module copies some code from Jetty Maven plugin, specifically
To keep upstream tracking easier, pristine copies of these files are copied into
incoming-x.y branch, then package renamed. This version specific incoming branch is then "theirs" merged into the
incoming branch, which acts as the upstream tracking branch.
This branch is then merged into
git merge -X ignore-space-at-eol incoming. See diff between
master on these files to see the exact local patches.