Difference between Jenkins Job and Project

This puzzled me quite a bit, too, and although this is an old question I thought I'd expand @Jan's comment with some content from the discussion he linked, as it might help other users.

From the Jenkins CI forum:

A project is a special case of a job, i.e. all projects are jobs, but not all jobs are projects.

Perhaps it helps to extend mentally the names to "general purpose jobs" and "software building projects" (although the latter don't need to build software, they are tailored to this use case).

In the case of "new job", Jenkins can't know yet if the new job will be of the project subtype. On the other hand, once you have chosen to create a project, this is reflected as specific as possible in the UI ("Project Foo"). If you look at the precise wording on the "New Job" page, you'll realize the subtle differences (e.g. "Build a free-style software project" as opposed to "Monitor an external job").

An example of a job that is not a project is the lesser known "external job" that receives notifications from events that happen outside Jenkins, but should be tracked inside Jenkins (e.g. system restarts, etc.). See https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+external+jobs for more about this job type.

For the records, this is the actual class model used by Jenkins internally (extending sub-classes are indented below their super-class):

Job 
   AbstractProject 
      MatrixProject            (a.k.a. "multi-configuration project") 
      Project 
         FreeStyleProject 
         MatrixConfiguration   (a single configuration of a matrix project) 
   StubJob 
   ViewJob 
      ExternalJob 

Only FreeStyleProject, MatrixProject, and ExternalJob are visible on the "New Job" page.


Yes, they mean totally the same thing! Below is from the Jenkins guide:

Setting up the project

Go to Jenkins top page, select "New Job", then choose "Build a free-style software project". This job type consists of the following elements:

It seems the project is the job. Actually when you "create a new job", you will see four types of jobs, and three of them are described as "project".


Job is a deprecated term that is synonymous with Project. They both mean:

A user-configured description of work which Jenkins should perform, such as building a piece of software, etc.

Tags:

Jenkins