Adding a File to the Root of Your Gradle Distribution
A while ago, I needed to write a program that retrieved some information
from the database by using SQL queries located in files. I wanted to add
a file that would contain the settings of the app, like the port, SID,
login and password for the database, but also the location of those
queries. The problem was I couldn’t add those settings to a file in the
standard src/groovy/resources
folder, because when creating a
distribution with Gradle ./gradlew distZip
the file would be part of
the jar, and thus it would be difficult to modify the contents. I was
basically after a run-control file, a settings file in the root of my
distribution, that I could easily change on each run (if necessary).
Gradle provides several ways to accomplish this:
-
Add the file to
src/dist
and the file will be put in the root of the distribution after invoking./gradlew installDist
. Any folders you create will also be put in the distribution, so you can createsrc/dist/config
, for example, to put your configuration in, and a folderconfig
will be created in the distribution. -
Indicate to Gradle that you want a certain file or folder copied:
applicationDistribution.from('config.properties') { into '' }
-
Use the
distribution
plugin:apply plugin: 'distribution' distributions { main { contents { from { 'settings.groovy' } } } }