2015-05-29 80 views
0

请注意:虽然我在这个问题中提到了ShadowJar插件,但它只是提供完整的上下文。我相信任何Gradle Guru都可以回答这个问题,不管他们的ShadowJar的知识水平如何。Gradle createPom似乎没有读取gradle.properties

目前我Groovy项目是建立与下面的摇篮建立调用:

gradle clean build shadowJar

运行这个调用产生build/libs下一个包装罐中的脂肪在我gradle.properties文件中指定的version属性。例如,如果gradle.properties具有version=1.2.3,则上述调用产生build/libs/myapp-1.2.3.jar

它是什么不产生产生,但是,我的应用程序是一个有效的聚甲醛。所以我发现this answer和修改它一下生产:

task createPom << { 
    pom { 
     project { 
      groupId ${group} 
      artifactId 'myapp' 
      version ${version} 
     } 
    }.writeTo("build/libs/pom.xml") 
} 

groupversion(在gradle.properties同时指定)将“注入”,这一点应产生在一个pom.xml与我的胖罐相同的目录。

添加createPom任务后,我跑:

gradle clean build shadowJar createPom

而且我得到这个错误:

FAILURE: Build failed with an exception. 

* Where: 
Build file 'D:\workspace\blah\myapp\build.gradle' line: 89 

* What went wrong: 
Execution failed for task ':createPom'. 
> No signature of method: java.lang.Object.$() is applicable for argument types: (java.util.Collections$EmptyMap, null) values: [[:], null] 
Possible solutions: any(), is(java.lang.Object), wait(), find(), dump(), grep() 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 11.673 secs 

这到底是怎么回事?

回答

1

的线条:

groupId ${group} 
artifactId 'myapp' 
version ${version} 

无效Groovy和也许应该是:

groupId "${group}" 
artifactId 'myapp' 
version "${version}" 
+0

是什么'的groupId “$ {}组”','主场迎战受益groupId group' – Trejkaz

+0

没有...确实,你的可能会更好 –