2016-06-17 39 views
1

IntelliJ/Gradleを使って、別のプロジェクトで使用するためにpom.xmlのjarファイルを生成したいとします。 は私がbuild.gradle次のコードを試してみました:pom.xmlをjarファイルに生成する

group 'com.test' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
apply plugin: 'maven-publish' 

sourceCompatibility = 1.5 

repositories { 
    mavenCentral() 
} 
jar { 
    into("META-INF/maven/$project.group/$project.name") { 
     from generatePomFileForMavenJavaPublication 
     rename ".*", "pom.xml" 
    } 
} 
publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
     } 
    } 
} 
dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
    compile group: 'postgresql', name: 'postgresql', version: '9.1-901.jdbc4' 
} 

しかし、私は次のエラー取得しています:

'jar' cannot be applied to '(groovy.lang.closure <org.gradle.api.tasks.bundling.AbstractArchiveTask>)' 

をそしてGradleのは言う:

Could not find property 'generatePomFileForMavenJavaPublication' on 
task ':jar'. 

それとも誰かが別の方法を知っているのですか?を

+0

'generatePomFileForMavenJavaPublication'は何ですか?それは問題を引き起こすようです。 – Opal

+0

これは 'maven-deploy' Gradleプラグインを使うべきでしょうか? – Vampire

+0

'generatePomFileForMavenJavaPublication'は、' build'ディレクトリにpom.xmlを作成する 'publishing'にリストされているgradleのタスクです。 –

答えて

0

fromは、ファイルまたはパスが必要です。あなたはそれを供給しているのですが、generatePomFileForMavenJavaPublicationは、ファイルまたはパスではありませんので、それはうまく動作しません。

あなたができることはjarの前提条件であり、作成したpomをビルドディレクトリに置くことです。これを実現する必要があり、次のような

何かを:

jar { 
    dependsOn generatePomFileForMavenJavaPublication 
    from("$builddir/pom.xml") //Or whatever path it goes to in the generate task. 
    into("META-INF/maven/$project.group/$project.name") 
} 
+0

意味があります。しかし、私はまだ同じエラーが発生しています... –

+1

これは、gradleは、私の質問を編集、gradleから別のエラーメッセージを発見したgeneratePomFileForMavenJavaPublicationタスクをフィンにできないようです –

0

私はちょうどpom.xmlは瓶内である必要はないことが分かりました。

私はMavenのローカルへの公開(中央をMavenのない)場合には動作します:

group 'ch.test' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
apply plugin: 'maven-publish' 

sourceCompatibility = 1.5 

repositories { 
    mavenLocal() 
} 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 

     } 
    } 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
    compile group: 'postgresql', name: 'postgresql', version: '9.1-901.jdbc4' 
} 
関連する問題