diff --git a/doc/ant.txt b/doc/ant.txt index 06ba3f3..fc500c3 100644 --- a/doc/ant.txt +++ b/doc/ant.txt @@ -22,7 +22,7 @@ Repository for it, ship it as another source and install it. [source,spec] ------------- BuildRequires: ant -BuildRequires: maven-local +BuildRequires: javapackages-local ... %build ant test diff --git a/doc/core_java_packages.txt b/doc/core_java_packages.txt index 34e0728..2baf4b2 100644 --- a/doc/core_java_packages.txt +++ b/doc/core_java_packages.txt @@ -51,9 +51,39 @@ non-zero epoch in order to keep version ordering correct. ======= +==== Java Packages Tools + +Java Packages Tools are packaged as severas binary RPM packages + +*`maven-local`*:: + + This package provides a complete environment which is required to + build Java packages using Apache Maven build system. This + includes a default system version of Java Development Kit (JDK), + Maven, a number of Maven plugins commonly used to build packages, + various macros and utlilty tools. `maven-local` is usually + declared as build dependency of Maven packages. + +*`ivy-local`*:: + + Analogously to `maven-local`, this package provides an environment + required to build Java packages using Apache Ivy as dependency + manager. + +*`javapackages-local`*:: + + Package providing a basic environment necessary to geterate and + install metadata for system artifact repository. + +*`javapackages-tools`*:: + + Package owning basic Java directories and providing runtime + support for Java packages. The great majority of Java packages + depend on `javapackages-tools`. + + TODO -* Java Packages Tools * Ant ** extra tasks and /etc/ant.d * Maven diff --git a/doc/directory_layout.txt b/doc/directory_layout.txt index 862ccd4..907777d 100644 --- a/doc/directory_layout.txt +++ b/doc/directory_layout.txt @@ -34,13 +34,6 @@ short description. Maven are installed. Each POM must have name that strictly corresponds to JAR file in `%{_javadir}` or `%{_jnidir}`. -*`%{_mavendepmapfragdir}`* -- `/usr/share/maven-fragments`:: - - Directory containing package metadata in XML format. Typically - each binary package installs there a single XML file containing - various information (metadata) about artifacts associated with - that package. - .Other directories [glossary] diff --git a/doc/generic_java_build.txt b/doc/generic_java_build.txt index 6fb09bb..5c29c95 100644 --- a/doc/generic_java_build.txt +++ b/doc/generic_java_build.txt @@ -11,49 +11,18 @@ POM or JAR file, we may use the `%add_maven_depmap` macro. However, if package is build in standard way (i.e.: `%mvn_build` and `%mvn_install`), then calling `%add_maven_depmap` is neither needed nor recommended. This macro is usually useful only for packages that use other build tool than Maven (e.g.: ant, -gradle). It creates files in `%{_mavendepmapfragdir}` that map -groupId:artifactId pairs to JAR files under `%{_javadir}`. These files are -called depmap fragments. The macro can read the groupId and artifactId from the -POM file or maintainer can pass this information as an argument. All fragments -in `%{_mavendepmapfragdir}` directory are read by XMvn, allowing the -locally installed JAR and POM files to be used as a maven repository. - -Note that -- unless you use the `-f` option as shown below -- all -depmap fragments for a given package are written to the same file, -`%{_mavendepmapfragdir}/%{name}`. You should be sure to include this -file in the `%files` section of your RPM. +gradle). For the macro to work properly, all JAR files must be copied into `%{_javadir}` -and all POM files must be copied into `%{_mavenpomdir}` and given file names of -the following form, where `jarname` is the name of the JAR without the .jar -suffix: +and all POM files must be copied into `%{_mavenpomdir}`. -[source,spec] --------- -%{_mavenpomdir}/JPP[.subdirectory]-jarname.pom --------- - -Note that the subdirectory is only necessary if the JAR file is put into a -subdirectory of `%{_javadir}`. For example: - -* For junit, the JAR is `%{_javadir}/junit.jar`, so the POM would be - `%{_mavenpomdir}/JPP-junit.pom`. -* For plexus-ant-factory, the JAR is `%{_javadir}/plexus/ant-factory.jar`, so - the POM would named `%{_mavenpomdir}/JPP.plexus-ant-factory.pom`. - -If a POM is installed with no corresponding JAR file -- for example, for parent -POM files -- the same convention should be followed: - -* The Apache commons parent POM is installed in - `%{_mavenpomdir}/JPP-commons-parent.pom`. - -In its simplest form (a POM without a JAR file), `%add_maven_depmap` looks like +In simplest form (a POM without a JAR file), `%add_maven_depmap` looks like this: .Parent POM [source,spec] -------- -%add_maven_depmap JPP-%{name}.pom +%add_maven_depmap %{name}.pom -------- This will read the POM file in question and provide a mapping between the @@ -65,7 +34,7 @@ For a POM that maps directly to a JAR file, the following is the correct form: .Standard invocation [source,spec] -------- -%add_maven_depmap JPP-%{name}.pom %{name}.jar +%add_maven_depmap %{name}.pom %{name}.jar -------- In addition to creating the POM mapping, this will also ensure that the correct @@ -82,7 +51,7 @@ mapping between Maven artifact and corresponding JAR file: .Providing additional artifact mappings [source,spec] -------- -%add_maven_depmap JPP-%{name}.pom %{name}.jar -a "org.apache.commons:commons-lang" +%add_maven_depmap %{name}.pom %{name}.jar -a "org.apache.commons:commons-lang" -------- This form also adds additional mappings for given POM/JAR file. For example, if the POM file indicates that it contains groupId commons-lang, artifactId @@ -94,16 +63,16 @@ require different IDs than those reflected in the installed POM. .Multiple subpackages [source,spec] -------- -%add_maven_depmap JPP-%{name}.pom %{name}.jar -f "XXX" +%add_maven_depmap %{name}.pom %{name}.jar -f "XXX" -------- -This form stores dependency mapping inside `%{_mavendepmapfragdir}/%{name}-XXX` -instead of standard location. This is useful for packages with multiple -subpackages where each has its own JAR files. +This form stores metadata information in file with suffix "XXX". This +is useful for packages with multiple subpackages where each has its own +JAR files. .Multiple artifacts in a subdirectory [source,spec] -------- -%add_maven_depmap JPP.%{name}-sub.pom %{name}/sub.jar +%add_maven_depmap %{name}-sub.pom %{name}/sub.jar -------- This form should be used when a package consists of multiple JAR files that are diff --git a/doc/index.txt b/doc/index.txt index f9af27e..22c9ab2 100644 --- a/doc/index.txt +++ b/doc/index.txt @@ -63,22 +63,6 @@ References 'DocBook - The Definitive Guide'. O'Reilly & Associates. 1999. ISBN 1-56592-580-7. - -[glossary] -Glossary --------- -Glossaries are optional. Glossaries entries are an example of a style -of AsciiDoc labeled lists. - -[glossary] -[[Xdepmap]]depmap:: - Depmap is a special file telling Maven relationships between - groupId,artifactId and JAR file on the filesystem - -A second glossary term:: - The corresponding (indented) definition. - - ifdef::backend-docbook[] [index] Example Index diff --git a/doc/maven.txt b/doc/maven.txt index 7539d00..63c8cc8 100644 --- a/doc/maven.txt +++ b/doc/maven.txt @@ -35,7 +35,7 @@ BuildRequires: maven-local The macros `%mvn_build` and `%mvn_install` automatically handle building of the JAR files and their subsequent installation to the correct directory. The -corresponding POM and <> files are also installed. +corresponding POM and metadata files are also installed. [[packaging_maven_project]] === Packaging Maven project diff --git a/doc/mvn_macros.txt b/doc/mvn_macros.txt index c1b9aa2..1115cc8 100644 --- a/doc/mvn_macros.txt +++ b/doc/mvn_macros.txt @@ -66,7 +66,7 @@ If the project consists of multiple artifacts, it is recommended to install each artifact to the separate subpackage. The macro `%mvn_build -s` will generate separate `.mfiles` file for every artifact in the project. This file contains list of files related to specific artifact (typically JAR file, POM file and -depmap). It can be later used in `%files` section of the spec file. +metadata). It can be later used in `%files` section of the spec file. .Creating one subpackage for each generated artifact [source,spec]