2017-11-15 2 views
0

Ich habe ein Java-gradle Projekt mit dieser Struktur:Warum `gradle`` ant.replace_rexp` in jedem Teilprojekt ausführt?

EarApp 
| 
\---> WarA/trunk 
|  | 
|  |- build.gradle 
|  ...<src and config> 
| 
\---> WarB/trunk 
|  | 
|  |- build.gradle 
|  ...<src and config> 
| 
\---> WarC/trunk 
|  | 
|  |- build.gradle 
|  ...<src and config> 
| 
|- build.gradle 
|- settings.gradle 

Mein settings.gradle ist:

include "WarA" 
include "WarB" 
include "WarC" 

project(":WarA").projectDir   = file("WarA/trunk") 
project(":WarB").projectDir   = file("WarB/trunk") 
project(":WarC").projectDir   = file("WarC/trunk") 

Jeder build.gradle in Teilprojekte enthält:

import org.tmatesoft.svn.core.wc.* 
def getSvnRevision(){ 
    ISVNOptions options = SVNWCUtil.createDefaultOptions(true); 
    SVNClientManager clientManager = SVNClientManager.newInstance(options); 
    SVNStatusClient statusClient = clientManager.getStatusClient(); 
    SVNStatus status = statusClient.doStatus(projectDir, false); 
    SVNRevision revision = status.getRevision(); 
    return revision.getNumber(); 
} 


def replaceTokens() { 
    ant.replaceregexp(
     file: "./src/main/resources/messages/text.properties", 
     match: "application.revision=(.*)", 
     replace: "application.revision=rev_" + getSvnRevision(), 
     byline: "true" 
    ) 
} 


war { 
    replaceTokens() // Update rev number 
    baseName = nome 

    from('config') { 
    include 'ibm-web-ext.xml' 
    into 'WEB-INF' 

    manifest { 
     attributes("Application-Name": baseName, 
       "Implementation-Version": versione + 'rev_' + getSvnRevision()) 
    } 
    } 
} 

Bei der Ausführung gradle -p WarA/trunk war oder gradle WarA:war die Wara .war ist korrekt gebaut, aber ich erwarte nur die ./src/main/resources/messages/text.properties von WarA wird aktualisiert von ant.

Stattdessen bekomme ich, dass jedes Unterprojekt die ./src/main/resources/messages/text.properties Datei aktualisiert bekommen.

Was fehlt mir?

+0

Wenn Sie ein Multi-Projekt-Build haben, dann sollten Sie wahrscheinlich verwenden './gradlew Wara: war' ein Teilprojekt Aufgabe ausgeführt werden soll. –

+0

@OliverCharlesworth: ändert das Ergebnis nicht :-( – sgargel

+0

Was ist die Konsolenausgabe dieses Gradle-Aufrufs? –

Antwort

Verwandte Themen