Reporting IssuesIssues for this plugin are managed primarily on the plugin's project under the JFrog JIRA.
Managing independent release versions and having sub-components for each build technology requires the plugin to be a first-level JIRA project, which is currently not possible under the Hudson-provided JIRA.

Introduction

The Hudson Artifactory Plugin brings Artifactory's Build Integration support to Hudson. This integration allows your build jobs to deploy artifacts automatically to Artifactory and have them linked to the build job that created them.
As part of deployment additional information is recorded by the plugin to give you full visibility of deployed artifacts, used dependencies and information about original build environment. As an important side affect the plugin also supports optimized end-of-build-only deployment.
To learn more about the Artifactory-side of the Hudson Artifactory Plugin, please read the documentation on the JFrog wiki.

Requirements

This plugin requires Artifactory 2.2.3 or later and Hudson 1.358 or later.
The plugin currently supports Maven 2, Maven 3, Gradle and Ivy-Ant builds.

Configuring Artifactory Server(s)

First, we need to configure the Artifactory server(s) that we will use to deploy artifacts and build info to. We do this on Hudson's system configuration page (Manage Hudson -> Configure System).
Locate the "Artifactory servers" configuration section, click the "Add" button and fill-in the Artifactory url and optionally a username and password that will be used to query Artifactory for a list of target repositories (this is only required if Artifactory is configured not to allow anonymous access).

You can also set the default deployer credentials (and the default resolver credentials used by some build types) that will be used by individual jobs when publishing and resolving to/from Artifactory.

Configuring Maven 2 and Maven 3 Builds

Once at least one Artifactory server is configured we can add the plugin as a post-build step in a Maven 2/3 build. To do this, create or edit a Maven 2/3 build project.

Maven 3 Support for Hudson < v1.392The Hudson Artifactory plugin supports running Maven 3 builds in older versions of Hudson using free-style jobs, using a Maven 3 build step for running a Maven 3 installation configured in the general Hudson configuration, and a build environment section for the Artifactory Maven 3 integration (artifact and build information deployment). This feature is deprecated with newer versions of Hudson, so for Maven 3 builds users are encouraged to configure the Artifactory integration using Hudson's native Maven 2/3 build projects, as explained above.

Configuring Gradle Builds

You can use the Hudson Gradle Plugin (configured under a free-style job) in conjunction with the Hudson Artifactory Plugin and have your Gradle builds resolve artifacts from Artifactory and deploy artifacts and build information to Artifactory.

Configuring Ivy-Ant Builds

By using the Hudson Ivy Plugin together with the Hudson Artifactory Plugin your Ivy builds will publish artifacts and build information to Artifactory whenever an ivy:publish task is executed.

Install the Hudson Ivy PluginTo use the Hudson Artifactory Plugin with Ivy builds you need to install the Hudson Ivy Plugin.

Publishing to your local file cache repository is the best way to go (i.e. you do not need to publish to Artifactory). The plugin will intercept the publish events and will replay them against Artifactory according to the configuration. Using an ivy:publish task that publishes directly to Artifactory will result in (redundant) double publishing.

License Control

You use the Artifactory Pro License Control feature to discover and handle third party dependency licensing issues as part of the build.
Check the 'Run license checks' option if wish that Artifactory will scan and check the licenses of all dependencies used by this build. If you wish to inform selected users about any license violations detected while scanning, you may enter a white-spaced list of e-mail addresses to the notification recipients text box.

Watch the Screencast

To see the Hudson Artifactory Integration in action you can watch the following screencast.

Hi all,
after configuring the servers in the hudson system-configuration it add...

Hi all,

after configuring the servers in the hudson system-configuration it added the artifactory-plugin as a build-step in a particulary job, but there is no other action I can check, especially a post-build-action as shown in the picture. If I try to apply with the plugin added as build-step, I get the following stack-trace:

org.kohsuke.stapler.NoStaplerConstructorException: Unable to find org/jfrog/hudson/ArtifactoryBuilder.stapler. There's no @DataBoundConstructor on any constructor of class org.jfrog.hudson.ArtifactoryBuilder
at org.kohsuke.stapler.RequestImpl.loadConstructorParamNames(RequestImpl.java:471)
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:329)
at hudson.model.Descriptor.newInstance(Descriptor.java:351)
at hudson.model.Descriptor.newInstancesFromHeteroList(Descriptor.java:633)
at hudson.util.DescribableList.rebuildHetero(DescribableList.java:164)
at hudson.model.Project.submit(Project.java:194)
at hudson.model.FreeStyleProject.submit(FreeStyleProject.java:97)
at hudson.model.Job.doConfigSubmit(Job.java:967)
at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:519)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:185)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:101)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:54)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:74)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:492)
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:180)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:492)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:408)
at org.kohsuke.stapler.Stapler.service(Stapler.java:117)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94)
at org.jvnet.hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:47)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:97)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:619)

I tested the plugin with version 1.337 and it works fine. Did you restarted the ...

I tested the plugin with version 1.337 and it works fine. Did you restarted the server after installation? Any exception during installation of the plugin or hudson startup?
And BTW, the plugin works with Artifactory version 2.1.3 which will be released soon (but it is not related to the problem you are experiencing).

You'll only see the repositories list if you configured a good Artifactory URL a...

You'll only see the repositories list if you configured a good Artifactory URL and used the right credentials. Please make sure you configured it correctly. You can contact me directly if still doesn't work.

Hi,
I had a similar issue and couldn't see any repositories.
URL was correctly...

Hi,
I had a similar issue and couldn't see any repositories.
URL was correctly, user and password was correctly and I also tried out to set everything to public and give anonymous full permissions,
nothing helped.

I have upgraded to the latest artifactory 2.2.0 then it worked fine.
Before it was using 2.1.1 and I didn't read the requirements 2.1.3

using artifacory to deploy and upload build info, we get :
Deploying build info to: http://MYSERVER/artifactory/api/build
ERROR: Failed to send build info: Internal Server Error
java.io.IOException: Failed to send build info: Internal Server Error
at org.jfrog.hudson.BuildInfoDeployer.sendBuildInfo(BuildInfoDeployer.java:176)
at org.jfrog.hudson.BuildInfoDeployer.deploy(BuildInfoDeployer.java:53)
at org.jfrog.hudson.ArtifactoryRedeployPublisher.perform(ArtifactoryRedeployPublisher.java:101)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:582)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildStep(AbstractBuild.java:563)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:594)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:534)
at hudson.model.Run.run(Run.java:1216)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:304)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:122)

Hi folks,
I just tried out the latest artifactory plugin v1.05 joining the lates...

Hi folks,
I just tried out the latest artifactory plugin v1.05 joining the latest hudson v1.345 and the latest artifactory v2.2.0
and saw that the artifactory plugin leaves out some artifacts that have been build!!

For instance javadoc.jar, sources.jar and several other artifacts like asseblies xxx.zip or xxx.exe types.
Only foo.jar, foo-test.jar and pom.xml is deployed.

Hi,
Is there any chance you can add an option to ignore/bypass the Hudson proxy...

Hi,

Is there any chance you can add an option to ignore/bypass the Hudson proxy (in the Hudson Update Center). It looks like all artifactory plugin requests all go via this proxy (if configured) and I cannot get a list of repositories unless I remove the proxy config.

My artifactory is located on our local network and our stupid proxy blocks requests to it for some reason. I will try asking our network guys but I have more confidence in you being able to provide a fix than them..

I seem to remember a similar problem with another plugin making use of the Hudson proxy config. Maybe Hudson should provide a noProxyHosts option to make this more viable for plugins to use.

We have excactly the same issue. Alread when setting up Artifactory for a build ...

We have excactly the same issue. Alread when setting up Artifactory for a build the 'Target repository' list is empty. We also have configured Hudson to use a proxy for updating over the Internet. However Artifactory and Hudson are running on the same machine so there is no need for the artifactory plugin to go over the proxy.

Hi all,
Recently I upgraded Hudson to version 1.362 and the artifactory plugin ...

Hi all,

Recently I upgraded Hudson to version 1.362 and the artifactory plugin to version 1.1.0, but now I get an error from the artifactory plugin when it's trying to deploy the build info to Artifactory:Deploying build info ...
ERROR: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199)
at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:356)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.jfrog.build.client.PreemptiveHttpClient.execute(PreemptiveHttpClient.java:75)
at org.jfrog.build.client.ArtifactoryBuildInfoClient.sendBuildInfo(ArtifactoryBuildInfoClient.java:209)
at org.jfrog.hudson.BuildInfoDeployer.deploy(BuildInfoDeployer.java:58)
at org.jfrog.hudson.ArtifactoryRedeployPublisher.perform(ArtifactoryRedeployPublisher.java:110)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:580)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:598)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:528)
at hudson.model.Run.run(Run.java:1276)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:306)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:124)

Hi all,
Recently I upgraded Hudson to version 1.362 and the artifactory plugin t...

Hi all,
Recently I upgraded Hudson to version 1.362 and the artifactory plugin to version 1.1.0, but now I get an error from the artifactory plugin when it's trying to deploy the build info to Artifactory:
Deploying build info ...
ERROR: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199)
at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:356)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.jfrog.build.client.PreemptiveHttpClient.execute(PreemptiveHttpClient.java:75)
at org.jfrog.build.client.ArtifactoryBuildInfoClient.sendBuildInfo(ArtifactoryBuildInfoClient.java:209)
at org.jfrog.hudson.BuildInfoDeployer.deploy(BuildInfoDeployer.java:58)
at org.jfrog.hudson.ArtifactoryRedeployPublisher.perform(ArtifactoryRedeployPublisher.java:110)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601)
at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:580)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:598)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:528)
at hudson.model.Run.run(Run.java:1276)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:306)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:124)
Has anyone else encountered this problem ?

Hi,
I'm using the artifactory plugin with ivy. When I create my jar file with i...

Hi,

I'm using the artifactory plugin with ivy. When I create my jar file with ivy it generates a file something like myjar_1.2.3.4.jar with a corresponding ivy file (ivy_1.2.3.4.xml), however when this is uploaded to artifactory using this plugin the jar and ivy files have had their names changed. the jar file is now called myjar_1-1.2.3.4.jar (it's got an extra '1-' before the version number) and the ivy file is now ivy-1.2.3.4.xml. Why does this happen shouldn't it be using the original ivy xml and jar file names?

Hi, I am using the artifactory plugin in a free-style project that uses a gradle...

Hi, I am using the artifactory plugin in a free-style project that uses a gradle script (for a grails project), but as soon as I enable the Gradle-Artifactory Integration the build fails complaining "module not found: #build-info-extractor-gradle;1.0-SNAPSHOT" and similar things.

I noticed that in the <HUDSON ARTIFACTORY PLUGIN>/WEB-INF/lib/ folder there is a file named build-info-extractor-gradle-1.0.2.jar and others for the missing libraries. Is it my fault or a version compatibility issue?