Does "publish" implies "build" for included builds by default?

I have one project including others using includeBuild in settings.gradle. I’m able to publish the main project including the artifacts of the included builds, but recognized that the included builds are not up-to-date. One of the included builds has been build manually some days ago the last time, so a *.jar was still available until today and that was used by Gradle during publishing my main project. After changing my build.gradle to contain publish.dependsOn build, included builds seem to be up-to-date in my deployment dir now.

Is it by design that publish doesn’t trigger a build on included projects? Or am I doing something wrong somewhere? Could this have to do with using Eclipse Buildship, in which I’m executing publish on my main project only instead of the shell?

If this is by design, how do other users assure that included builds are published up-to-date always? I’m simply using Eclipse to develop in the included builds and the main project, there’s normally no step in which I manually build the included projects using Gradle, it all happens automatically. And the code executed within Eclipse is always current. It’s only that when I’m finished and want to publish that by default it seems the last built Jar of some included build is used, no matter how old it ist. Doesn’t make much sense to me.

Thanks for your clarifications!