ant
를 사용하는 것이 보통이다.ant
라는 AntBuilder 인스턴스를 사용해 앤트 태스크를 호출할 수 있다.ant.태스크이름
으로 호출한다.task hello << { String greeting = 'hello from Ant' ant.echo(message: greeting) ant.echo('hello from Ant') // 이것도 가능. }
task zip << { ant.zip(destfile: 'archive.zip') { fileset(dir: 'src') { include(name: '**/*.xml') exclude(name: '**/*.java') } } }
ant.taskdef
task check << { ant.taskdef(resource: 'checkstyletask.properties') { classpath { fileset(dir: 'libs', includes: '*.jar') } } ant.checkstyle(config: 'checkstyle.xml') { fileset(dir: 'src') } }
configurations { pmd // pmd 라는 설정이 생기고 } dependencies { pmd group: 'pmd', name: 'pmd', version: '4.2.5' // pmd 설정에 의존성을 지정한다. }
configurations.이름.asPath
로 의존성 사용task check << { ant.taskdef(name: 'pmd', classname: 'net.sourceforge.pmd.ant.PMDTask', classpath: configurations.pmd.asPath) ant.pmd(shortFilenames: 'true', failonruleviolation: 'true', rulesetfiles: file('pmd-rules.xml').toURI().toString()) { formatter(type: 'text', toConsole: 'true') fileset(dir: 'src') } }
ant.importBuild()
로 build.xml을 직접 읽어올 수 있다.build.gradle
ant.importBuild 'build.xml'
build.xml
<project> <target name="hello"> <echo>Hello, from Ant</echo> </target> </project>
gradle hello
로 Ant 타겟을 Gradle 태스크인 것 처럼 실행할 수 있다.<project> <target name="hello" depends="intro"> <!-- intro는 Gradle 태스크 --> <echo>Hello, from Ant</echo> </target> </project>
ant.buildDir = buildDir ant.properties.buildDir = buildDir ant.properties['buildDir'] = buildDir ant.property(name: 'buildDir', location: buildDir)
// build.xml에서 프라퍼티를 설정했을 때 <property name="antProp" value="a property defined in an Ant build"/> // 다음처럼 읽는다. println ant.antProp println ant.properties.antProp println ant.properties['antProp']
// 레퍼런스 설정 ant.path(id: 'classpath', location: 'libs') // id 지정 방식 ant.references.classpath = ant.path(location: 'libs') // 명시적으로 references에 넣기 ant.references['classpath'] = ant.path(location: 'libs') // [] 연산자 이용 // build.xml에서 참조 가능 <path refid="classpath"/>
// build.xml에 설정된 값을 <path id="antPath" location="libs"/> // 다음처럼 읽는다. println ant.references.antPath println ant.references['antPath']
Ant Java 태스크는 Java 클래스를 실행한다. Gradle Java Plugin에서 JavaExec
를 사용하는 방법도 있다.
ant.java(classname: '실행할JavaClass', fork: true, classpath: configurations.임의의Config.asPath) { arg(value: '파라미터1') arg(value: '파라미터2') ... }
task zip << { ant.zip(destfile: 'archive.zip') { fileset(dir: 'src') { include(name: '**/*.xml') exclude(name: '**/*.java') } } }
// resources.zip 파일의 resources/ 디렉토리로 압축 ant.zip(destfile: "${buildDir}/resources.zip") { zipfileset(dir: "${webAppDirName}/WEB-INF/resources", prefix: "resources") }