Reputation: 17336
My project has one .zip file in the source code that i want to put in appserver.zip file under folder 1.1.0/deployment. This .zip file again gets bundled in a .tar file.
NOTE: THIS project is not a JAVA/Groovy project i.e. there is no java programs or groovy programs
Following is my build.gradle, which is creating the correct .zip (with correct folder/ source .zip file in it) and .tar file containing the appserver.zip in it:
// Let say $projName, $folderArtifactoryVersion or etc variables used in the following script - are set correctly to a valid value.
task createZipFile( type: Zip) {
// Create artifact directory
def dirName = "build/folderDist"
def dirDist = new File( dirName )
dirDist.mkdirs()
destinationDir dirDist
archiveName "appserver.zip"
println ''
println 'bundleArchiveName: ' + archiveName
into( '1.1.0/deployment' ) {
from( "cognos/Integration/Deployment" )
include( 'SomeCognos_deploy.zip' )
}
}
task createTarFile( type: Zip) {
dependsOn createZipFile
def projName = "dircognosreporting"
def dirParent = "build/folderArts"
// Create artifact directory
def dirName = "$dirParent/com/truven/folder/$projName/$folderArtifactoryVersion"
def dirDist = new File( dirName )
dirDist.mkdirs()
destinationDir dirDist
archiveName "dirCognosReporting-${folderArtifactoryVersion}.tar"
println ''
println 'bundleArchiveName: ' + archiveName
println ''
into( '' ) {
from( "build/folderDist" )
include( 'appserver.zip' )
}
}
build {
dependsOn clean
dependsOn createTarFile
}
Gradle build log shows the following:
-bash-3.2$ /production/gradle/AKS/gradle-1.6/bin/gradle clean build
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "folderArtifactoryVersion" on "root project 'dirCognosReporting'", value: "1.1.0.5".
bundleArchiveName: appserver.zip
bundleArchiveName: dirCognosReporting-1.1.0.5.tar
:clean
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:checkstyleMain UP-TO-DATE
:findbugsMain UP-TO-DATE
:pmdIntegrationTest UP-TO-DATE
:pmdMain UP-TO-DATE
:pmdTest UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:createZipFile
:createTarFile
:build
BUILD SUCCESSFUL
Total time: 5.117 secs
-bash-3.2$
My 2 ?s:
Why the println message defined within createZipFile and createTarFile were printed at the very first stage, even before clean. If I use task build << { ... } then - as expected, i get task build already exist. If I use just build << { .... }, I get a different behaviour.
As build result is giving me what i need under build/folderDist and build/folderArts folders, I'm not much worried about the above bullet at this time, but WHAT should I do, so that I don't see the following lines in the output (as i dont have anything related to java in my source code). Why, gradle is just not doing only - createZipFile, createTarFile and then exit out gracefully?
*
:clean
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:checkstyleMain UP-TO-DATE
:findbugsMain UP-TO-DATE
:pmdIntegrationTest UP-TO-DATE
:pmdMain UP-TO-DATE
:pmdTest UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:createZipFile
:createTarFile
:build
*
Upvotes: 1
Views: 4178
Reputation: 123960
ad 1. Because you are printing in the configuration phase, rather than the execution phase. If you want the println
statement to be executed as part of executing the task, wrap it with doFirst { ... }
or doLast { ... }
.
ad 2. Someone (e.g. a parent build script) is applying the java
, pmd
, checkstyle
, and findbugs
plugins to this project. Get rid of all that. To nevertheless keep the clean
task, apply the base
plugin. To keep the build
task, declare it yourself (change build { ... }
to task build { ... }
).
Upvotes: 5
Reputation: 17336
Seems like it's due to the reason as my /init.d folder has a somename.gradle build where I have defined apply plugin: 'java' within allprojects { ..... } section.
If I comment that out, I get an error saying build() ...not there or absent.
Upvotes: 0