private Optional<File> attemptLocalResolutionFromPublication(DependencyAdaptor da, Stream<Publication> publications) { //If any of these is null, we'll fall back to external repositories as well. final String group = da.getGroup(); if ( group == null ) return null; final String version = da.getVersion(); if ( version == null ) return null; final String module = da.getModule(); if ( module == null ) return null; final Optional<File> anyMatch = publications .filter( d -> d instanceof MavenPublication ) .map( d -> (MavenPublication) d ) .filter( m -> module.equals( m.getArtifactId() ) && group.equals( m.getGroupId() ) && version.equals( m.getVersion() ) ) .map( MavenPublication::getArtifacts ) .flatMap( MavenArtifactSet::stream ) .filter( m -> m.getFile() != null ) .map( m -> m.getFile() ) .filter( f -> ((!f.getName().endsWith( "-sources.jar" ))&&(!f.getName().endsWith( "-javadoc.jar" ))) ) .findAny(); return anyMatch; }
@Override public void apply(Project project) { // Ensure publishing exists before configuring IR publishing project.getPluginManager().apply(MavenPublishPlugin.class); project.getPluginManager().apply(ConjurePlugin.class); CompileIrTask compileIr = (CompileIrTask) project.getTasks().findByName(ConjurePlugin.CONJURE_IR); if (compileIr == null) { throw new GradleException("Unable to find compileIr task"); } // Configure publishing project.getExtensions().configure(PublishingExtension.class, publishing -> { publishing.publications(publications -> { publications.create( "conjure", MavenPublication.class, mavenPublication -> mavenPublication.artifact( compileIr.getOutputFile(), mavenArtifact -> { mavenArtifact.builtBy(compileIr); mavenArtifact.setExtension("conjure.json"); })); }); }); } }
@Override public void execute(Project project) { JavaPluginConvention java = project.getConvention().getPlugin(JavaPluginConvention.class); PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class); Task sourceJar = project.getTasks().create("sourceJar", Jar.class, jar -> { jar.from(java.getSourceSets().getByName("main").getAllSource()); }); publishing.publications(publications -> { publications.create("mavenJava", MavenPublication.class, publication -> { publication.artifact(sourceJar, artifact -> { artifact.setClassifier("sources"); }); }); }); } }