Ignoring Files and Folders

Ignoring Files and Folders

Liferay Cloud allows subscribers to determine which files and folders should be ignored before deploying a service. This is done by creating a .lcpignore file and placed inside the top level of the project folder (for example: /etc/lfrlearn/ where lfrlearn is the project name). By placing the file here, the ignore rules can be shared with other users.

Using the .lcpignore File

  1. Navigate to the location of the project folder.
  2. Create a file called .lcpignore.
  3. Modify the file accordingly.
  4. Run lcp deploy on a terminal to deploy your service with the new .lcpignore rules.

LCP Ignore Patterns

The .lcpignore file uses globbing patterns to match against file names. (These are the same patterns used in a .gitignore file.) Administrators can construct such patterns using various symbols:

Pattern Example matches Explanation*
**/service service/file.txt, or, service/monday/foo.bar, or build/service/file.txt Prepending a pattern with a double asterisk matches folders anywhere in the repository.
**/service/file.txt service/file.txt; or build/service/file.txt but not service/build/file.txt Using a double asterisk matches files based on their name and the name of their parent folder.
*.txt file.txt, foo.txt, .txt, or, service/file.txt An asterisk is a wildcard that matches zero or more characters.
*.txt or !important.txt file.txt, trace.txt but not important.txt, service/important.txt Prepending an exclamation mark to a pattern negates it. If a file matches a pattern, but also matches a negating pattern defined later in the file, it will not be ignored.
*.txt or !important/*.txt or trace.* file.txt important/trace.txt but not important/file.txt Patterns defined after a negating pattern ignores any previously negated files.
/file.txt file.txt, but not service/file.txt Prepending a slash matches files only in the repository root.
file.txt file.txt, or service/file.txt By default, patterns match files in any folder
file?.txt fileo.txt, files.txt but not file10.txt Using a question mark matches exactly one character.
file[0-9].txt file0.txt, file1.txt, but not file10.txt Using square brackets matches a single character from a specified range.
file[01].txt file0.txt, file1.txt, but not file2.txt nor file01.txt Using square brackets matches a single character from the specified set.
file[!01].txt file2.txt, but not file0.txt, nor file1.txt, nor file01.txt Using an exclamation mark matches any character except one from the specified set.
file[a-z].txt filea.txt, fileb.txt, but not file1.txt Ranges can be numeric or alphabetic.
txts txts, txt/file.txt, txts/latest/foo.bar, build/txts, build/txts/file.txt If a slash is not appended, the pattern will match both files and the contents of folders with that name. In the example matches on the left, both folders and files named txts are ignored.
txts/ txts/file.txt, txts/latest/foo.bar, build/txts/foo.bar, build/txts/latest/file.txt Appending a slash indicates the pattern is a folder. The entire contents of any folder in the repository matching that name – including all of its files and subfolders – will be ignored.
txts/**/file.txt txts/file.txt, txts/monday/file.txt, or txts/monday/pm/file.txt A double asterisk matches zero or more folders.
txts/*day/file.txt txts/monday/file.txt or txts/tuesday/file.txt, but not txts/latest/file.txt Wildcards can be used in folder names as well.
txts/file.txt txts/file.txt, but not file.txt build/txts/file.txt Patterns specifying a file in a particular folder are relative to the repository root. Note that prepending a slash has no effect.

As best practice, keep the .lcpignore file in the top level folder of your project. If your repository has multiple .lcpignore files (not recommended), Liferay Cloud will read them as a unified document.


If a file or folder has been deployed and administrators want to ignore it later, Liferay Cloud will not ignore the file if a subsequent rule tries to include that file or folder. Rather, that file or folder will not be updated.