通过自定义插件创建默认项目Jar in gradle

时间:2014-05-05 19:37:36

标签: plugins jar gradle publish

我正在构建我的第一个gradle自定义插件。这个插件做了很多事情,包括根据项目的其他插件配置它应用的项目。我想要这个插件做的事情之一是处理所有Maven发布工作,因此它不需要出现在每个build.gradle中。每个构建都完全相同,它们只有源Jar和它们的基础项目Jar,并且都将(或将要)发布到我们的工件库。

这样,我可以创建Jar文件。但是,Jar文件仅包含META-INF文件夹和清单文件,并且不包含项目的任何类。有没有人遇到这个问题并知道原因?

   // Configure Jar Manifest
    jar {
        manifest = project.manifest {
            from sharedManifest
        }
    }

    // Configure sources Jar manifest
    (project.getTasks()).create("sourcesJar", Jar) {
        classifier "sources"
        from project.sourceSets.main.allSource
        manifest = project.manifest {
            from sharedManifest
        }
    }

    artifacts {
        archives project.tasks.sourcesJar
    }
    publishing {
        publications {
            mavenJava(MavenPublication) {
                from project.components.java
                artifact project.tasks.sourcesJar
                pom.withXml {
                    def root = asNode()
                    root.appendNode("name", project.name)
                    root.appendNode("description", project.name + "component of company.")
                    root.appendNode("inceptionYear", "2010")
                }
            }
        }
        repositories {
            maven {
                //We only publish to the Releases repository if the project is given the property "release"
                if(project.hasProperty("release")) {
                    url "http://clipped/"
                } else {
                    url "http://clipped/"
                }

                credentials {
                    if(project.hasProperty("nexusUsername") && project.hasProperty("nexusPassword"))
                    {
                        username = nexusUsername
                        password = nexusPassword
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

就是这样,开发人员Peter已将所有调用插件的项目从src / main / java移到src / java,认为文件夹结构不必要地深入。插件代码没有错。