2016-09-03 9 views
0

私はマルチプロジェクトのGradleの設定を持っている:`compile project(:dependency)`の依存関係のための格子マッピング?

-- root (folder 'gradle_test') 
    L--wrapper (depends on some 3rd-party maven libs) 
    L--module1 (depends on wrapper) 
    L--app 

私は(推移的依存関係としてラッパージャー)Module1のjarファイルを必要とするローカルのMavenリポジトリで公開されます。

ルートbuild.gradle

// for maven 
ext { 
    groupId = 'mygroup' 
    version = '3.0' 
} 

ラッパーbuild.gradle

apply plugin: 'maven' 
... 
// maven pom 
install { 
    repositories.mavenInstaller { 
     pom.groupId = rootProject.ext.groupId 
     pom.artifactId = 'wrapper' 
     pom.version = rootProject.ext.version 
    } 
} 

Module1のbuild.gradle

dependencies { 
    compile project(':wrapper') 

    ... 
} 
// maven pom 
install { 
    repositories.mavenInstaller { 
     pom.groupId = rootProject.ext.groupId 
     pom.artifactId = 'module1' 
     pom.version = rootProject.ext.version 
    } 
} 

Howeven i 'はラッパー' に依存関係を見ることができますローカルのMavenキャッシュにモジュール1をインストールしますモジュールが正しく生成されない(バージョンは指定されていません)。レポでModule1をpom.xml:のGradleはcompile project(:wrapper)宣言からマッピングされたMavenの依存関係のmavenモジュールのgroupId /たartifactId /バージョンを使用していないすなわち

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>mygroup</groupId> 
    <artifactId>module1</artifactId> 
    <version>3.0</version> 
    <dependencies> 
    <dependency> 
     <groupId>gradle_test</groupId>  // error 1: gradle project name (instead of overriden mvn groupId) 
     <artifactId>wrapper</artifactId> 
     <version>unspecified</version>  // error 2: not set at all 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
</project> 

どうすればいいですか?

答えて

0

私はwrappermodule1のために書かなければならなかった:

// mvn 
group = rootProject.ext.groupId 
version = rootProject.ext.version 

、あなたが削除することができます。

install { 
    repositories.mavenInstaller { 
    ... 
    } 
} 

のGradleはMVNモジュールversionとしてMVNモジュールgroupIdとしてproject.groupproject.versionを使用しますので、:

https://docs.gradle.org/current/userguide/maven_plugin.html#sec:maven_pom_generation

関連する問題