2016-08-05 17 views
2

gradleからmavenプロジェクトをチェックアウトしてビルドするにはどうすればいいですか?私はチェックアウトを構築し、私のGradleのビルドファイルから上流のMavenプロジェクトを構築する必要があります

mvn clean package -DskipTests -Phadoop-2.6 -Dhadoop.version=2.6.0 -P build-distr -Dhbase.hbase.version=1.2.0 -Dhbase.hadoop.version=2.6.0

は、このワークフローのためのGradleと共通のパターンがありますか?もしそうなら、これはどのようにして正常に行われますか?

+0

あなたのMavenプロジェクトが置かれているMavenリポジトリ(会社のアーティファクトなど)がありますか?あるいは、gitのようなscmシステムから直接チェックアウトしようとしていますか? –

+0

私は会社のMavenリポジトリを持っていません。私の前提は、ビルドの一環としてApache ZeppelinプロジェクトをGitHubからチェックアウトしなければならないということでした。 –

+0

[このバージョンのZeppelin](https://mvnrepository.com/artifact/org.apache.zeppelin/zeppelin-interpreter/0.6.0)ですか?もしそうなら、それは実際にMaven Centralに既にあります。リンクはあなたに適切なエントリを表示します。 –

答えて

2

残念ながら、そこにこのアウトオブボックスを行うには一般的な方法はありませんが、カスタムタスクでこれに達することができる:

task extractMavenPackage(type: Copy){ 
    destinationDir file(mvnHomeDir) 
    from zipTree(configurations.maven.singleFile) 
    includeEmptyDirs = false 
    eachFile { // workaround to skip first-level folder 
    List segments = it.relativePath.segments as List 
    it.path = segments.tail().join('/') 
    } 
} 

ビルドを実行し

抽出Mavenのパッケージ

task mvnCleanPackage(type: Exec) { 
    dependsOn extractMavenPackage, extractZeppelinSources 
    commandLine "${mvnHomeDir}/bin/mvn.bat" 
    workingDir zeppelinProjectDir 
    args "-T", "4" 
    // args "-s", "$projectDir/settings.xml" // uncomment it if you want to provide custom settings.xml 
    args "clean", "package" 
    args "-DskipTests" 
    args "-P", "build-distr" 
    args "-Phadoop-2.6", "-Dhadoop.version=2.6.0", "-Dhbase.hbase.version=1.2.0", "-Dhbase.hadoop.version=2.6.0" 
} 

maven-from-gradle-example githubのプロジェクトの完全な例を参照してください

関連する問題