2017-01-25 4 views
0

In meinem Projekt habe ich eine Kompilierungsabhängigkeit zu einem Jar bei der Sonatype-Gruppe, die wiederum von einem Jar abhängt, den ich nur als lokale Kopie in meinem Dateisystem habe.Ignoriere abhängige Jar-Version in Gradle Build

Um beide Gläser Zugriff auf meine build.gradle sieht wie folgt aus:

dependencies { 
    compile fileTree(dir: './3rdparty/mrcp4j/lib', include: ['*.jar']) 
    compile group: 'net.sourceforge.halef', name: 'cairo-client', version: '0.1-SNAPSHOT' 
} 

nun die pom des kairo-Client jar, die ich von Sonatype ziehen einen Verweis auf Version 0.2 des mrcp.jar enthält als folgt

<dependency> 
    <groupId>org.mrcp4j</groupId> 
    <artifactId>mrcp4j</artifactId> 
    <version>0.2</version> 
    <scope>compile</scope> 
</dependency> 

die Lieferanten des kairo-client.jar nicht die mrcp4j.jar als Dritter veröffentlichen hat oder ähnliches, aber schien in ihrem lokalen maven-Repository auf einer Kopie zu verlassen.

Der Build schlägt fehl, da Gradle nicht in der Lage ist, die angegebene Version mit der Version zu vergleichen, die ich bereitstellen kann.

Could not find org.mrcp4j:mrcp4j:0.2. 
    Searched in the following locations: 
    https://repo1.maven.org/maven2/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom 
    https://repo1.maven.org/maven2/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar 
    https://jcenter.bintray.com/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom 
    https://jcenter.bintray.com/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar 
    https://oss.sonatype.org/content/repositories/snapshots/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom 
    https://oss.sonatype.org/content/repositories/snapshots/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar 
Required by: 
    org.jvoicexml:org.jvoicexml.implementation.mrcpv2:0.7.8 > net.sourceforge.halef:cairo-client:0.1-SNAPSHOT 
    org.jvoicexml:org.jvoicexml.implementation.mrcpv2:0.7.8 > net.sourceforge.halef:cairo-sip:1.0-SNAPSHOT 

Ist es möglich, eine Version für ein Glas im Dateisystem angeben oder die gewünschte Versionsnummer und ersetzen die angeforderten Attribute zu ignorieren?

Antwort

0

In der Zwischenzeit konnte ich einen Workaround für diese Situation finden. Ich teile es hier in der Hoffnung, dass es für andere nützlich sein wird. Jedenfalls bin ich an Verbesserungen interessiert.

Meine Problemumgehung basiert darauf, dass ich das abhängige JAR in allen Konfigurationen ignoriere und den Verweis auf den lokalen im Dateisystem belasse.

Also alles, was ich tat, war, indem die folgenden Zeilen

configurations.all { 
    exclude group: ' org.mrcp4j', module:'mrcp4j' 
} 

Die Abhängigkeit auf das Dateisystem bleiben muss, das Glas zu liefern.