Enterprise Plugin Repository

It is sometimes the case, you can create plugins you want to preserve for internal use only. With
IntelliJ IDEA
you can maintain your own enterprise repository to share your plugins with team members solely.

To create a repository, we need a Web server, where our plugins will reside, and a descriptor of available plugins (updatePlugins.xml), so IntelliJ IDEA could find them. This file can be located at the same Web server, for instance. By the time we decide to use plugins from the enterprise repository, we’ll only need to specify where this descriptor resides. To do so, open the Settings dialog (Ctrl + Alt + S) and go to Updates. In the Plugin Hosts section click Add and specify path to the updatePlugins.xml.

When creating updatePlugins.xml file for your repository, follow this DTD:
http://plugins.intellij.net/dtd/idea/updatePlugins1.0.dtd, so IntelliJ IDEA would be able to recognize available plugins.
Each plugin entry in this file should contain plugin identifier and URL of the plugin repository. Additionally, we can specify here plugin version. Though, if it is not pointed out in updatePlugins.xml, IntelliJ IDEA will fish it out from the plugin *.jar.

For example, we upload MyPlugin to the Web server where the repository resides. Then we open the updatePlugins.xml and add new plugin entry, like this one:

And that’s all we need to do to add the plugin to our repository.

If the whole team uses customized IntelliJ IDEA, you can add the whole list of plugin hosts to the bin/idea.properties under IntelliJ IDEA installation folder. Just open this file and add the following line: -D idea.plugin.hosts=[URL1],[URL2],…[URLn] where [URL1],[URL2],…[URLn] is a comma-delimited list of the URLs to the enterprise repositories.

Once hosts are specified, plugins are automatically updated according to the schedule defined in the Check for updates field of the Updates dialog. Yet, you can update them manually any time you need it. Just open the Updates dialog and click Check now. Update Info dialog box opens showing the list of plugins from all the available enterprise repositories. You can unselect those of them you don’t want to update for some reason.
Don’t forget that updates will take effect after IntelliJ IDEA restart.

Technorati tags: , ,
This entry was posted in Plugin Development. Bookmark the permalink.

7 Responses to Enterprise Plugin Repository

  1. Hugo Palma says:

    This is a great feature, i’ve been waiting for this ever since i started using IDEA.

    Regarding plugin repositories, the only thing i find missing is a hosted not stable plugins repository. A snapshots plugin repository, doing the Maven analogy. I think this would help plugin providers get feedback earlier from users.

  2. Boaz Nahum says:

    You wrote:
    “If the whole team uses customized IntelliJ IDEA”.
    Can you describe in few words this subject. Is there a way to team to share configuration ?

    B.R
    Boaz

  3. Maria Khalusova says:

    Boaz,
    You can customize the bin/idea.properties file and share it with the whole team, thus sharing lots of settings, including the list of plugin hosts.

  4. Dmitry says:

    Hey, thanks for the very helpful post.
    I did exactly what you describe (I think) with somewhat different results. Each time IDEA update check is performed (like on startup in my case) it pops a dialog informing me that my plugins have been downloaded and I need to restart for the update to take effect. This happens every time with no regard to version or whether the jars have actually changed. Also there is no option to select which plugins to download.
    What am I missing?

  5. Nick says:

    Hi Dmitry,

    Maybe you have solved this by now but I just set this up and I found I had a similar problem for one of my plugins.

    I fixed it by ensuring that the id matched the plugin name in the xml.

    updatePlugins.xml:

    PluginName

    Hope that helps.

    Nick

  6. In general plugins are packaged into zip file where there is lib directory and one jar file has the same name as the whole directory and contains META-INF/plugins.xml.

    But it seems that this doesn’t work with enterprise plugins. So my question is how enterprise plugins can be packaged to described in updatePlugins.xml to include several 3-d party jars?

  7. Szymek Pindelski says:

    hello,
    I’d like to report a broken link pointing to updatePlugins dtd : http://plugins.intellij.net/dtd/idea/updatePlugins1.0.dtd

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">