# Is plugins archive directory immutably /plugins?

**URL:** <https://community.jenkins.io/t/is-plugins-archive-directory-immutably-plugins/782>\
**Category:** Ask a question\
**Created:** [November 10, 2021, 10:10am UTC](https://community.jenkins.io/t/is-plugins-archive-directory-immutably-plugins/782 "2021-11-10T10:10:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ian\_W](https://avatars.discourse-cdn.com/v4/letter/i/cab0a1/32.png) [@Ian\_W](https://community.jenkins.io/u/Ian_W)\
**Post date:** [November 10, 2021, 10:10am UTC](https://community.jenkins.io/t/is-plugins-archive-directory-immutably-plugins/782/1 "2021-11-10T10:10:22Z")

</div>

I know the `jenkins.war` has options for the exploded war and plugins:

```auto
Running from: C:\apps\jenkins-2.303.2.war
webroot: $user.home/.jenkins
Jenkins Automation Server Engine 2.303.2
Usage: java -jar jenkins.war [--option=value] [--option=value]

Options:
   --webroot = folder where the WAR file is expanded into. Default is ${JENKINS_HOME}/war
   --pluginroot = folder where the plugin archives are expanded into. Default is ${JENKINS_HOME}/plugins

```

Also configurable via system property `hudson.PluginManager.workDir`

But is the plugin archive directory (where the .hpi/.jpi are stored) immutably `${JENKINS_HOME}/plugins` ?

If so, is there a reason this is fixed? Was it a design decision or just overlooked?

---

<div class="post-metadata">

**Author:** ![mtughan](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/mtughan/32/91_2.png) [@mtughan](https://community.jenkins.io/u/mtughan)\
**Post date:** [November 10, 2021, 1:19pm UTC](https://community.jenkins.io/t/is-plugins-archive-directory-immutably-plugins/782/2 "2021-11-10T13:19:23Z")

</div>

It is fixed in the sense that there isn’t a system property that can override that directory (it’s defined in [`LocalPluginManager.java` line 49](https://github.com/jenkinsci/jenkins/blob/cee0d06770e6bed478e105368ef57371814f3f79/core/src/main/java/hudson/LocalPluginManager.java#L48), which is called by [`PluginManager.createDefault`](https://github.com/jenkinsci/jenkins/blob/cee0d06770e6bed478e105368ef57371814f3f79/core/src/main/java/hudson/PluginManager.java#L258)). However, `PluginManager.createDefault` _can_ take a custom plugin manager class in the system property `hudson.PluginManager.className`, and a custom `PluginManager` implementation (very similar to `LocalPluginManager` just with a different constant) could be relatively easily used. In this way, you could change the location of the directory.

Is there a particular reason you want to change the directory location?
