Jenkins 8,793 expects a fixed layout at the root of the library's repository. At tag v1.1.0, BookNest's library holds a README, a .gitignore, a build.gradle, one test class and these four files:
cd booknest-jenkins-lib && git ls-files src varssrc/org/booknest/ImageTag.groovy vars/imageTag.groovy vars/seedCheck.groovy vars/seedCheck.txt
vars/ holds global variables. Each name.groovy becomes a variable called name in every pipeline that loads the library, and one with a call method is used like a step: seedCheck(). A matching name.txt is help text for Pipeline Syntax > Global Variables Reference.
src/ is an ordinary Groovy source tree whose classes, such as org.booknest.ImageTag, join the pipeline's classpath.
resources/ (unused here) holds non-Groovy files that the libraryResource step reads as strings.
Jenkins ignores the rest, such as the tests (Testing Libraries). Keep plain logic in src/, where it is easy to test.