This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
new 17c3f73eca Generate sources JAR and Javadoc JAR together with the
Maven artifacts.
17c3f73eca is described below
commit 17c3f73eca02c394d0897b18176d82ee0d5487cc
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Wed Oct 4 18:10:23 2023 +0200
Generate sources JAR and Javadoc JAR together with the Maven artifacts.
---
.../apache/sis/buildtools/gradle/BuildHelper.java | 1 +
.../apache/sis/buildtools/gradle/Dependency.java | 2 +-
.../apache/sis/buildtools/gradle/ModularJAR.java | 9 +-
.../sis/buildtools/gradle/ModularSources.java | 146 +++++++++++++++++++++
.../apache/sis/buildtools/gradle/ZipWriter.java | 2 +-
endorsed/build.gradle.kts | 85 +++++++++---
incubator/build.gradle.kts | 15 ++-
optional/build.gradle.kts | 5 +-
8 files changed, 240 insertions(+), 25 deletions(-)
diff --git
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/BuildHelper.java
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/BuildHelper.java
index 729fa33f0e..0408b27a8f 100644
---
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/BuildHelper.java
+++
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/BuildHelper.java
@@ -160,6 +160,7 @@ public final class BuildHelper implements Plugin<Project> {
});
});
tasks.withType(Jar.class).forEach((task) -> {
+ task.getInputs().dir(Conventions.SOURCE_DIRECTORY);
task.getOutputs().dir(Conventions.fileRelativeToBuild(project,
Conventions.LIBS_DIRECTORY));
task.setActions(List.of((t) -> { // Replace the default
action by our own.
ModularJAR.execute(BuildHelper.this, (Jar) t);
diff --git
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/Dependency.java
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/Dependency.java
index f05b607943..c4b4ef9f4a 100644
---
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/Dependency.java
+++
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/Dependency.java
@@ -151,7 +151,7 @@ public final class Dependency {
}
}
}
- return null;
+ return name.replace('-', '.');
}
/**
diff --git
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularJAR.java
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularJAR.java
index 72f4be0535..ba1e3b96b3 100644
---
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularJAR.java
+++
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularJAR.java
@@ -81,7 +81,7 @@ final class ModularJAR extends ZipWriter.JDK {
* Invoked when the {@code jar} task is executed.
*
* @param context the extension which is invoking this task.
- * @param task the {@link Javadoc} task to configure.
+ * @param task the {@link Jar} task to configure.
*/
static void execute(final BuildHelper context, final Jar task) {
final Project project = task.getProject();
@@ -106,9 +106,14 @@ final class ModularJAR extends ZipWriter.JDK {
}
}
try {
- write(project, module, new File(target, module.getName() +
".jar"), filteredAttributes);
+ final String name = module.getName();
+ write(project, module, new File(target, name + ".jar"),
filteredAttributes);
+ ModularSources.write(task, name, false);
+ ModularSources.write(task, name, true);
} catch (IOException e) {
throw new UncheckedIOException(e);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
}
filteredAttributes.clear();
}
diff --git
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularSources.java
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularSources.java
new file mode 100644
index 0000000000..b07e0cc9ca
--- /dev/null
+++
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ModularSources.java
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.buildtools.gradle;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.zip.ZipOutputStream;
+import org.gradle.api.Project;
+import org.gradle.api.Task;
+
+
+/**
+ * Generates the source codes on a per-module basis.
+ *
+ * @author Martin Desruisseaux (Geomatys)
+ */
+final class ModularSources extends ZipWriter.JDK {
+ /**
+ * The directory where the ZIP files will be written.
+ */
+ private static final String OUTPUT_DIRECTORY = "docs";
+
+ /**
+ * The Java system property to set to {@code true} for enabling Javadoc
generation.
+ */
+ private static final String CREATE_JAVADOC_PROPERTY =
"org.apache.sis.create-javadoc";
+
+ /**
+ * Creates a helper instance.
+ *
+ * @param project the sub-project being compiled.
+ * @param out output stream of the JAR file to create.
+ */
+ private ModularSources(final Project project, final ZipOutputStream out) {
+ super(project, out);
+ }
+
+ /**
+ * Deletes the given directory recursively.
+ *
+ * @param f file or directory to delete.
+ * @throws IOException if the file or directory cannot be deleted.
+ */
+ private static void delete(final File f) throws IOException {
+ final File[] files = f.listFiles();
+ if (files != null) {
+ for (File c : files)
+ delete(c);
+ }
+ if (!f.delete()) {
+ throw new IOException("Cannot delete " + f);
+ }
+ }
+
+ /**
+ * Returns the path to the sources of the given module.
+ *
+ * @param project the project.
+ * @param module name of the module.
+ * @return path to the sources of the specified module.
+ */
+ private static File sourcesDir(final Project project, final String module)
{
+ return new File(new File(project.file(Conventions.SOURCE_DIRECTORY),
module), Conventions.MAIN_DIRECTORY);
+ }
+
+ /**
+ * Creates the JAR files for source codes or javadoc.
+ *
+ * @param task the JAR task being executed.
+ * @param module name of the module for which to create sources JAR.
+ * @param javadoc whether to create Javadoc.
+ * @throws IOException if an error occurred while writing the source ZIP
files.
+ * @throws InterruptedException if the process has been interrupted while
generating javadoc.
+ */
+ static void write(final Task task, final String module, final boolean
javadoc) throws IOException, InterruptedException {
+ final Project project = task.getProject();
+ final File sources;
+ if (javadoc) {
+ sources = new File(task.getTemporaryDir(), "javadoc");
+ if (!sources.mkdir()) {
+ delete(sources);
+ if (!sources.mkdir()) {
+ throw new IOException("Cannot create " + sources);
+ }
+ }
+ /*
+ * For performance reason, we actually generate the Javadoc only
of the
+ * "org.apache.sis.create-javadoc" system property is set to
`true`.
+ * Otherwise the Javadoc files will be empty.
+ */
+ if (Boolean.getBoolean(CREATE_JAVADOC_PROPERTY)) {
+ final var pb = new ProcessBuilder("javadoc",
+ "-locale", "en",
+ "-doctitle", "Apache SIS API",
+ "-tag", "category:X:Category:",
+ "-tag", "todo:a:TODO:",
+ "-nonavbar", "-noindex", "-nodeprecatedlist",
"-notree", "-nohelp",
+ "--module-path",
Conventions.fileRelativeToBuild(project, LIBS_DIRECTORY).getPath(),
+ "--module-source-path", sourcesDir(project,
"*").getPath(),
+ "--add-modules", "org.apache.sis.storage",
// For allowing some forward references.
+ "-d", sources.getPath(),
+ "--module", module);
+
+ final File errors = new File(sources, "errors.log");
+ pb.redirectError(errors);
+ final Process p = pb.start();
+ p.waitFor();
+ if (p.exitValue() == 0) {
+ errors.delete();
+ }
+ } else {
+ Files.writeString(new File(sources, "README").toPath(),
+ "For performance reason, Javadoc generation is
disabled by default.\n" +
+ "For generating Javadoc, set the following system
property:\n" +
+ "\n" +
+ " " + CREATE_JAVADOC_PROPERTY + "=true\n" +
+ "\n");
+ }
+ } else {
+ sources = sourcesDir(project, module);
+ }
+ final var target = Conventions.fileRelativeToBuild(project,
OUTPUT_DIRECTORY);
+ target.mkdir();
+ final File file = new File(target, module + '-' + (javadoc ? "javadoc"
: "sources") + ".jar");
+ try (ZipOutputStream out = new ZipOutputStream(new
FileOutputStream(file))) {
+ final var writer = new ModularSources(project, out);
+ writer.writeDirectory(sources, null, "");
+ }
+ }
+}
diff --git
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ZipWriter.java
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ZipWriter.java
index b8440e088f..7529994b00 100644
---
a/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ZipWriter.java
+++
b/buildSrc/src/org.apache.sis.buildtools/main/org/apache/sis/buildtools/gradle/ZipWriter.java
@@ -214,7 +214,7 @@ abstract class ZipWriter extends Conventions {
* Copies to the ZIP file the content of the given directory.
*
* @param source the directory to zip.
- * @param filter filter to apply on the files, or {@code null} if none.
+ * @param filter filter to apply on the files of the root directory, or
{@code null} if none.
* @param target where to write the files in the ZIP file. Empty for
writing in the root.
* @throws IOException if an error occurred while reading the source or
writing the ZIP file.
*/
diff --git a/endorsed/build.gradle.kts b/endorsed/build.gradle.kts
index 2cf5c89f2e..b8671e60c3 100644
--- a/endorsed/build.gradle.kts
+++ b/endorsed/build.gradle.kts
@@ -232,18 +232,24 @@ tasks.jar {
publishing {
publications {
create<MavenPublication>("util") {
+ var module = "org.apache.sis.util"
groupId = "org.apache.sis.core"
artifactId = "sis-utility"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.util.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS utilities"
description = "Units of measurement and miscellaneous utility
methods required by Apache SIS."
}
}
create<MavenPublication>("metadata") {
+ var module = "org.apache.sis.metadata"
groupId = "org.apache.sis.core"
artifactId = "sis-metadata"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.metadata.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS metadata"
description = "Implementations of metadata derived from ISO
19115. " +
@@ -252,9 +258,12 @@ publishing {
}
}
create<MavenPublication>("referencing") {
+ var module = "org.apache.sis.referencing"
groupId = "org.apache.sis.core"
artifactId = "sis-referencing"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.referencing.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS referencing"
description = "Implementations of Coordinate Reference Systems
(CRS), " +
@@ -262,9 +271,12 @@ publishing {
}
}
create<MavenPublication>("referencing.gazetteer") {
+ var module = "org.apache.sis.referencing.gazetteer"
groupId = "org.apache.sis.core"
artifactId = "sis-referencing-by-identifiers"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.referencing.gazetteer.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS referencing by geographic
identifiers"
description = "Implementations of Spatial Reference Systems
using Geographic Identifiers " +
@@ -272,9 +284,12 @@ publishing {
}
}
create<MavenPublication>("feature") {
+ var module = "org.apache.sis.feature"
groupId = "org.apache.sis.core"
artifactId = "sis-feature"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.feature.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS features"
description = "Representations of geographic features. " +
@@ -282,108 +297,144 @@ publishing {
}
}
create<MavenPublication>("portrayal") {
+ var module = "org.apache.sis.portrayal"
groupId = "org.apache.sis.core"
artifactId = "sis-portrayal"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.portrayal.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS portrayal"
description = "Symbology and map representations, together
with a rendering engine for display."
}
}
create<MavenPublication>("storage") {
+ var module = "org.apache.sis.storage"
groupId = "org.apache.sis.storage"
artifactId = "sis-storage"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS common storage"
description = "Provides the interfaces and base classes to be
implemented by various storage formats."
}
}
create<MavenPublication>("storage.xml") {
+ var module = "org.apache.sis.storage.xml"
groupId = "org.apache.sis.storage"
artifactId = "sis-xmlstore"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.xml.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS XML storage"
description = "Read and write files in the GPX format."
}
}
create<MavenPublication>("storage.netcdf") {
+ var module = "org.apache.sis.storage.netcdf"
groupId = "org.apache.sis.storage"
artifactId = "sis-netcdf"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.netcdf.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS netCDF storage"
description = "Bridge between netCDF Climate and Forecast (CF)
convention and ISO 19115 metadata."
}
}
create<MavenPublication>("storage.geotiff") {
+ var module = "org.apache.sis.storage.geotiff"
groupId = "org.apache.sis.storage"
artifactId = "sis-geotiff"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.geotiff.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS GeoTIFF storage"
description = "Cloud Optimized GeoTIFF reader and bridge to
ISO 19115 metadata."
}
}
create<MavenPublication>("storage.earthobservation") {
+ var module = "org.apache.sis.storage.earthobservation"
groupId = "org.apache.sis.storage"
artifactId = "sis-earth-observation"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.earthobservation.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS Earth Observation storage"
description = "Read a directory of Landsat files as a single
resource."
}
}
create<MavenPublication>("storage.sql") {
+ var module = "org.apache.sis.storage.sql"
groupId = "org.apache.sis.storage"
artifactId = "sis-sqlstore"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.sql.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS SQL storage"
description = "Read and write features from SQL databases."
}
}
create<MavenPublication>("cloud.aws") {
+ var module = "org.apache.sis.cloud.aws"
groupId = "org.apache.sis.cloud"
artifactId = "sis-cloud-aws"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.cloud.aws.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS storage from Amazon AWS S3"
description = "Provides access to Amazon AWS S3 storage from
Apache SIS data stores."
}
}
create<MavenPublication>("profile.france") {
+ var module = "org.apache.sis.profile.france"
groupId = "org.apache.sis.profiles"
artifactId = "sis-french-profile"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.profile.france.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS French profiles"
description = "Extensions to ISO-19115 metadata mandated by
the French government."
}
}
create<MavenPublication>("profile.japan") {
+ var module = "org.apache.sis.profile.japan"
groupId = "org.apache.sis.profiles"
artifactId = "sis-japan-profile"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.profile.japan.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS Japanese profiles"
description = "Extensions to netCDF reader for file formats
published by Japanese Aerospace Exploration Agency (JAXA)."
}
}
create<MavenPublication>("console") {
+ var module = "org.apache.sis.console"
groupId = "org.apache.sis.application"
artifactId = "sis-console"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.console.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS console"
description = "Console application."
}
}
create<MavenPublication>("openoffice") {
+ var module = "org.apache.sis.openoffice"
groupId = "org.apache.sis.application"
artifactId = "sis-openoffice"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.openoffice.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Bridges to Apache OpenOffice or LibreOffice"
description = "Provides some Apache SIS functionalities as
Apache OpenOffice addins. " +
diff --git a/incubator/build.gradle.kts b/incubator/build.gradle.kts
index ef4227ef12..e2e76b96bd 100644
--- a/incubator/build.gradle.kts
+++ b/incubator/build.gradle.kts
@@ -115,27 +115,36 @@ tasks.test {
publishing {
publications {
create<MavenPublication>("cql") {
+ var module = "org.apache.sis.cql"
groupId = "org.apache.sis.core"
artifactId = "sis-cql"
- artifact(layout.buildDirectory.file("libs/org.apache.sis.cql.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS CQL"
description = "CQL parser."
}
}
create<MavenPublication>("storage.shapefile") {
+ var module = "org.apache.sis.storage.shapefile"
groupId = "org.apache.sis.storage"
artifactId = "sis-shapefile"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.storage.shapefile.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS Shapefile storage"
description = "Read and write files in the Shapefile format."
}
}
create<MavenPublication>("webapp") {
+ var module = "org.apache.sis.webapp"
groupId = "org.apache.sis.application"
artifactId = "sis-webapp"
-
artifact(layout.buildDirectory.file("libs/org.apache.sis.webapp.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS web services layer"
description = "Placeholder for future developments."
diff --git a/optional/build.gradle.kts b/optional/build.gradle.kts
index 52a2f77766..0bfacae2f5 100644
--- a/optional/build.gradle.kts
+++ b/optional/build.gradle.kts
@@ -160,9 +160,12 @@ tasks.jar {
publishing {
publications {
create<MavenPublication>("gui") {
+ var module = "org.apache.sis.gui"
groupId = "org.apache.sis.application"
artifactId = "sis-javafx"
- artifact(layout.buildDirectory.file("libs/org.apache.sis.gui.jar"))
+ artifact(layout.buildDirectory.file("libs/${module}.jar"))
+ artifact(layout.buildDirectory.file("docs/${module}-sources.jar"))
{classifier = "sources"}
+ artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar"))
{classifier = "javadoc"}
pom {
name = "Apache SIS application for JavaFX (optional)"
description = "Client application for JavaFX. " +