So i have this client level plugin
package com.mycompany.Myapp.dir
import com.mycompany.Myapp.core.MyappCorePlugin
import com.mycompany.Myapp.lib.validation.MyappDependsOn
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.tasks.bundling.Jar
import static com.mycompany.Myapp.lib.ProjectTaskCreater.addPluginLocal
/**
* TODO Make sure this project is stand alone. It can't be a subproject or have subprojects
*/
class MyappDirPlugin implements Plugin<Project> {
@Override
@SuppressWarnings("GroovyAssignabilityCheck")
void apply(Project project) {
addPluginLocal(project, MyappCorePlugin)
project.with {
jar {
setExtension("zip")
}
publishing.publications {
dirproj(MavenPublication) {
from components.java
}
}
def compileConfig = configurations.findByName('compile')
artifactoryPublish {
publications << 'dirproj'
}
sourceSets {
main {
java {
srcDirs = []
}
groovy {
srcDirs = []
}
resources {
srcDirs = ['src/server_classpath']
}
output.classesDir "$buildDir/dir"
output.resourcesDir "$buildDir/dir"
}
test {
java {
srcDirs = []
}
groovy {
srcDirs = []
}
resources {
srcDirs = []
}
}
}
}
}
}
This particular plugin is supposed to add a folder of property files into the classpath of whatever project and publish them as a zip file.
now, the core plugin at the top implements artifactory and nebula. its VERY basic:
addPluginAllProjects(project, MavenPublishPlugin)
addPluginAllProjects(project, MavenPlugin)
addPluginAllProjects(project, ArtifactoryPlugin)
def retMap = checkArtifactoryActive(project)
if (retMap != null) {
artifactory {
contextUrl = retMap[PARAMETER_ARTIFACTORYCONTEXT]
publish {
repository {
repoKey = retMap[PARAMETER_ARTIFACTORYREPO]
username = retMap[PARAMETER_ARTIFACTORYUSER]
password = retMap[PARAMETER_ARTIFACTORYPASS]
maven = true
}
defaults {
publications ('nebula')
publishConfigs(ARTIFACTORY_CONFIGURATION_ARCHIVES, ARTIFACTORY_CONFIGURATION_PUBLISHED)
publishArtifacts = true
publishPom = true
}
}
}
}
Now, i keep getting errors stating that it can’t find example.jar. After 4 days of farting around trying different things, i finally opened up the pom file.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId/>
<artifactId>dirproj</artifactId>
<version>unspecified</version>
<packaging>zip</packaging>
<name>exampledir</name>
<description/>
<properties>
<nebula_Manifest_Version>1.0</nebula_Manifest_Version>
<nebula_Implementation_Title>#exampledir;unspecified</nebula_Implementation_Title>
<nebula_Implementation_Version>unspecified</nebula_Implementation_Version>
<nebula_Built_Status>integration</nebula_Built_Status>
<nebula_Built_By>me</nebula_Built_By>
<nebula_Built_OS>Windows 7</nebula_Built_OS>
<nebula_Build_Date>2017-02-06_10:24:32</nebula_Build_Date>
<nebula_Gradle_Version>3.3</nebula_Gradle_Version>
<nebula_Module_Source>C:/code/SDA/example/exampledir</nebula_Module_Source>
<nebula_Module_Origin>LOCAL</nebula_Module_Origin>
<nebula_Build_Host>myhost</nebula_Build_Host>
<nebula_Build_Job>LOCAL</nebula_Build_Job>
<nebula_Build_Number>LOCAL</nebula_Build_Number>
<nebula_Build_Id>LOCAL</nebula_Build_Id>
<nebula_Created_By>1.8.0_66-b17 (Oracle Corporation)</nebula_Created_By>
<nebula_Build_Java_Version>1.8.0_66</nebula_Build_Java_Version>
<nebula_Module_Owner></nebula_Module_Owner>
<nebula_Module_Email></nebula_Module_Email>
<nebula_X_Compile_Target_JDK>1.8</nebula_X_Compile_Target_JDK>
<nebula_X_Compile_Source_JDK>1.8</nebula_X_Compile_Source_JDK>
</properties>
<scm>
<url>LOCAL</url>
</scm>
</project>
Notice the group and version are blank? Now, what is different is in my build the group and version are not in the build file, the group comes from our inventory system that the core queries, and the version is passed in as a parameter to the build. Those items are queried and set in an afterEvaluate block in the core plugin. This is the first system that didn’t see it. Can anyone see what im doing wrong?