Custom libraries process


This document describes the process for working with the third-party libraries (custom libraries) used within Talend.


Custom libraries are needed for Talend components to work properly. These libraries are not delivered by Talend for contractual and licensing reasons, so they must be downloaded by the Studio.

The process is as follows:

  1. Configure TAC with the location of Nexus as an artifact repository and as the custom libraries repository (not localhost).
  2. Set up a user in TAC with appropriate privileges and access credentials to the source repository (SVN/GIT).
  3. Set up a project in TAC, and assign the correct privileges to the user.
  4. Start Studio.
  5. Log in to Studio as a user.
  6. [Optional] Publish from Studio – set up artifact repository details in Preferences.


This document also describes what you can do if Talend is installed in an environment without an internet connection.


Configure TAC

Among other things, TAC needs the following configuration:



Note: Software Update is not part of the custom library process. It is the mechanism used to download patches and updates.



So you have a configuration for Nexus, the artifact repository, but this configuration is only the place for TAC to look for artifacts for deployment in the Job and ESB conductors. Studio has a separate configuration for the artifact repository to which it publishes, as detailed later.


Set up a user

The user needs to be set up with the appropriate credentials for the source code system.



Set up a project in TAC

Set up a project as shown below:



Assign rights to the appropriate user(s)

Assign rights to users as follows:



Start Studio

Before Studio starts for the first time, the Maven .m2 repository has not been set up:



When Studio starts for the first time, it sets up its local Maven repository. This is where it stores libraries delivered by Eclipse plugins that are not transferred to Nexus with the custom libraries.



At this point, you can see that the custom libraries directory – stored in org.talend.libraries – is still (almost) empty:



and the custom libraries in Nexus are also still empty:



Log in to Studio



This is what happens behind the scenes:



Here you can see why it is a bad idea to leave hostnames as localhost. When the Nexus location is passed to Studio, it would get localhost as the host name, and because Nexus is not local to Studio, Studio is unable to find Nexus to interact with it. As soon as the user has logged on to Studio, you see some libraries appearing in Nexus, but not the third-party libraries:



Now Studio will request that the custom libraries are downloaded, which need to have the licenses accepted. These are the custom libraries:



Clicking Finish starts the download and you must now accept the licenses, which is the crucial part:



Note: the licenses will need to be explicitly accepted whether or not Studio downloads the libraries from the internet or internally from Nexus. Then you see the libraries downloading into the Studio’s Maven repository:



And you see them appearing in the Nexus custom libraries repository:



A note about the command line

Even though the command line is running, the custom libraries do not appear automatically in its Maven repository.


It will only bring these across from Nexus when it needs to build them into an artifact, such as when a Publisher or Job Conductor task is run. As mentioned earlier, try to avoid using these methods to publish or build artifacts and as much as possible, publish artifacts to Nexus and deploy those.


Publish from Studio

Before publishing from Studio, you must configure the Nexus artifact repository in the Preferences.



Installing in an environment without an internet connection

Many companies do not allow software such as Talend to have access to the internet. These are most typically financial institutions, but any company or organization handling sensitive data will probably impose internet access restrictions. This obviously poses a problem for a mechanism that relies on access to the internet to access third-party files. How can you solve this problem?


There are two main ways:

  • Install at least one Studio into an internet-connected environment.
  • Upload a backup of the Nexus custom libraries repository.


Install Studio into an internet-connected environment

As you have already seen, once the third-party libraries are uploaded into Nexus, there is no further requirement for access to the internet, even for Studio. So the easiest solution is to install one Studio on a machine and configure it with access to TAC and the Nexus installation. This will enable third-party libraries to be downloaded into Nexus and from there, the libraries are accessible from any Studio that connects to TAC, regardless of whether or not that Studio has internet access.


Upload a backup of the custom libraries

This involves having an “external” installation with access to the internet – often your own laptop - where the third-party libraries have already been downloaded into Nexus. Once the libraries are loaded into Nexus in the “external” installation, a backup of the libraries is made and then restored to the unconnected installation.


The process to make a backup

  1. By default, Nexus is installed with the TAC, in the TAC directory:



  2. Within that, navigate to the storage for the Talend libraries in the custom libs repository:



  3. Make a Zip backup of the entire directory.


The process to “restore” the backup to the target installation

  1. Log in to the Nexus in the target installation as an admin user: the default username is admin, the default password is Talend123.
  2. Click the Repositories menu item on the left:



  3. Right-click the talend-custom-libs-release repository and select Put out of service:



  4. Navigate to the storage for the Talend libraries in the custom libs repository, and unzip the backed up libraries archive:



  5. Right-click the talend-custom-libs-release repository and select Put in service:



  6. Right-click the talend-custom-libs-release repository, select Rebuild Metadata, then right-click and select Repair Index.



The libraries are now available for any Studio that logs in to the TAC.

Version history
Revision #:
11 of 11
Last update:
‎04-14-2019 02:22 AM
Updated by:

Can this mechanism be used for custom components created by our customers?

The idea is that they coudl create their own component on their studio and it will be added automatically to the central repository to be reused by other developers who would require this component.


I have never created a custom component so I don't know for sure but I don't think so. Quote from my document "

When the Studio starts for the first time it sets up its local Maven repository. This is where it stores libraries delivered by Eclipse plugins which are not transferred to Nexus with the custom libraries.

". I think this refers to the components.


This is a great article, thank you.
Community Manager

You will find information about sharing custom components in this article:

Six Stars

At the forth step of Studio login, "Studio delivers any custom libraries to Nexus", does that mean <STUDIO_PATH>\configuration
\.m2\repository\org\talend\libraries\ and <Nexus>\talend-custom-lib-release\org\talend\libraries should be synched and exactly the same? In my case, I saw more jars in my <STUDIO_PATH>\configuration 
\.m2\repository\org\talend\libraries\ .


Thank you very much for any clarification!





What I haven't yet had time to add to this article, is what happens when a library is added using tLibraryLoad or the Modules view. As far as I can tell, it ends up in the <Nexus>\talend-custom-lib-snapshot\org\talend\libraries repository which appears not to be shared to other Studios. As I said I am still researching this.

Six Stars

Thank you Rarnfield for your response!


In my case, I tried to use Modules view and tLibraryLoad to add jars in studio, they all ended up with adding jars to <Nexus>\talend-custom-lib-release\org\talend\libraries  "sometimes" -- they are not always adding jars to Nexus, I tried different jars, sometimes they were added, sometimes they were not..... I do not know if it is a talend bug. My talend is 6.4.1


Six Stars

This separation snapshot/release is new to 6.4.1, I don't have it on 6.1.1

Questions are:

- how Talend Studio can determine when tLibraryLoad load a JAR if the JAR is a snapshot or release one ?  Because it ends with "-SNAPSHOT" ?

- how can I push an updated snapshot version of a JAR ?  Should I use maven ?

- how (my colleague's) Talend Studio will see updated version of Snapshot'ed libraries and be forced to replace its local copy ?