META-INF.resources.parent.changelog.jspx Maven / Gradle / Ivy
Show all versions of pragmatickm-parent-book
- Updated plugin versions.
- Java updates:
- Java 19 is now end-of-life
- Java 20 is now current stable
- Java 21 is new beta
- Updated default project settings for
NetBeans 17 .
- Updated plugin versions.
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated plugin versions.
- Updated to latest release of
PGP keys map to maven artifacts .
-
New build property
\${build.versionNoPostSnapshot}
that contains the project version number
without any trailing -POST-SNAPSHOT
. For example, version 1.2.3-SNAPSHOT remains
1.2.3-SNAPSHOT while both 1.2.3 and 1.2.3-POST-SNAPSHOT become
1.2.3.
- Updated links from
to
- Enabled
Reproducible Builds :
- Removed
Implementation-Build-Date
from all manifest.
-
Set
notimestamp
in maven-javadoc-plugin .
-
build.currentYear
property is now extracted from project.build.outputTimestamp
.
As a result, buildnumber-maven-plugin is no longer part of the build.
-
Upgraded
maven-javadoc-plugin
from 3.0.1 to 3.4.1. Due to MJAVADOC-682
not yet resolved, builds will revert to version 3.0.1 under a new "reactor" profile.
- Changed Jenkins builds from Java 11 to Java 17.
-
Jenkins builds now use
.m2/repository-jdk-\${jdk}
for all Java versions.
Previously, builds for \${deployJdk}
used .m2/repository
.
This change makes it unnecessary to rename local repositories when changing \${deployJdk}
.
- Updated plugin versions.
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to latest release of
PGP keys map to maven artifacts .
- Jakarta EE updates:
- Added
Jakarta EE 10
- Java updates:
- Java 18 is now end-of-life
- Java 19 is now current stable
- Java 20 is new beta
- Updated plugin versions.
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated plugin versions.
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to
Apache Axis2 1.8.2 .
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated to
Apache Axis2 1.8.1 .
- Updated to
Checkstyle 10.3 .
- Updated to latest release of
PGP keys map to maven artifacts .
-
javax.activation:activation
apidocs now link to
.
- Updated to latest release of
PGP keys map to maven artifacts .
- Updated plugin versions.
-
Limited the workaround for
JDK-8215291
to only builds in
with no src/main/java/module-info.java
.
The previous mitigation was applied too broadly and broke the search URLs for projects with modules.
- Reduced size of Javadoc top section and fixed scroll position in Java 11.
-
Enabled Checkstyle on all builds using
Apache Maven Checkstyle Plugin .
The default style is based on Google's Java Style Checkstyle ,
but with the maximum line length increased to 200 characters.
By default, builds fail on Checkstyle error. Each project that cannot immediately be adapted
to pass the analysis should configure the plugin with
.
-
Enabled SpotBugs on all builds using
SpotBugs Maven Plugin .
By default, builds fail on SpotBugs error. Each project that cannot immediately be adapted
to pass the analysis should configure the plugin with
.
- Updated to latest release of
PGP keys map to maven artifacts .
-
An alternate build directory (other than the
default target
) may now be selected by providing an alt.build.dir
property. We use this in continuous integration to be able to concurrently build a project for
multiple JDK versions, significantly reducing the build time.
-
nexus-staging-maven-plugin
is now only enabled by a new nexus
profile. This is to support regular deployments
via maven-deploy-plugin
in continuous integration.
- Added Jenkins continuous integration.
- "skip-war" profile improvements to increase local development speed:
- Enforces "development" profile is also active
- Disables
PGP artifact verification
- Disables
GPG artifact signing
- Updated to latest release of
PGP keys map to maven artifacts .
- Enabled
verifying PGP keys of "provided" dependencies .
- Java updates:
- Java 16 is now end-of-life
- Java 17 is now current stable
- Java 18 is new beta
- Updated to latest release of
PGP keys map to maven artifacts .
-
Updated to latest releases of
PGP keys map to maven artifacts
and AO PGP Keys Map .
- Updated to
Apache Axis2 1.8.0 .
- Updated plugin versions.
- Enabled
dependency audits on builds.
- Java™ EE updates:
-
Default version changed from
Java™ EE 6
to Java™ EE 7
- Updated apidocs URL for
Jakarta EE 8
- Added
Jakarta EE 9
- Added
Jakarta EE 9.1
- Changed default Java version from 1.8 to 11
-
Enabled
dependency bytecode version checks
on builds. This will ensure a project does not inadvertently depend on a library of a newer Java
version than the project itself. The check is skipped when the development
profile
is active.
- Updated plugin versions.
Bundle-SymbolicName
is now defined to be the same as Java 9+ module names.
-
The "release" profile is now only to be used for production non-SNAPSHOT releases. SNAPSHOT
builds should only use the "POST-SNAPSHOT" profile. Local development builds should now use the
"development" profile, and may optionally use the "POST-SNAPSHOT" profile.
-
Reverted
maven-dependency-plugin
from version 3.2.0 to 3.1.2 until
Issue 753 is resolved.
-
Reverted
maven-javadoc-plugin
from version 3.3.0 to 3.0.1 since reactor builds are
failing with "Exit code: 1 - error: module not found: …" on projects with Java 9+ modules.
Please see Issue 682 .
-
Several profiles may now be conveniently activated by the presence of files in an optional
profile.d
directory. This technique is primarily a workaround for profiles not
being able to be activated by properties of sub-projects, and has the added benefit that the
set of profiles across all projects is easily manipulated through Bash scripts.
This includes maven.javadoc.skip
, maven.install.skip
,
maven.deploy.skip
, and skipNexusStagingDeployMojo
, which all have
the expected skipping behavior matching the property of the same name.
-
Nexus Repository Manager URL is now defined in a
$nexusUrl
property.
The URL should end with a slash (/) and is used for both distributionManagement/snapshotRepository
and nexus-staging-maven-plugin/nexusUrl. Defaults to
since groupId com.pragmatickm
is on the original Sonatype Nexus Repository Manager.
-
Added new "coverage" profile that enables
JaCoCo unit test code coverage .
This is expected to primarily be used within continuous integration systems, and may be used as a basis for
SonarCloud /SonarQube analysis.
-
Now
verifying artifact PGP signatures
on all builds. This means that GPG signing is now performed for all builds, including local-only
builds with the "development" profile active.
- Java updates:
- Java 15 is now end-of-life
- Java 16 is now current stable
- Java 17 is new beta
- Updated plugin versions.
-
Removed offline Javadocs for
com.servlets:cos
, since we have eradicated it from all projects in favor of
the standard file upload API
and JavaMail .
-
Added
workaround for "undefined" in URL during Javadoc search
when project has no modules.
-
Switched back to generating Javadocs links with target="_top"
on all versions of
Java. Eventhough the API Docs are generated without frames as of Java 9, they may still be used
within frames in other contexts, such as when viewed at .
Furthermore, browsers are increasingly blocking or issuing warnings when a link tries to go
to a different site within a frame. This change ensures links always escape frames.
-
New build properties
\${build.isSnapshot}
and \${build.notSnapshot}
that are set to true
or false
, depending in whether the
\${project.version}
is, or is not respectively, *-SNAPSHOT
.
- Updated plugin versions.
- Added default NetBeans formatting settings.
- Added default NetBeans server settings.
- Added default NetBeans hint settings.
- Added default NetBeans line ending settings.
- Added plugin repositories to match repositories.
-
Now
analyzing dependencies
during release builds.
-
Now automatically configures
rulesUri
for versions-maven-plugin
when the versions-rules.xml
file exists, via a new versions-rules
profile.
- Java updates:
- Java 14 is now end-of-life
- Java 15 is now current stable
- Java 16 is new beta
- Updated plugin versions.
- Corrected the default value for the Maven build property
documented.javadoc.link.javaee
.
-
Set
on maven-javadoc-plugin .
Projects are built and released on an individual basis, and thus we manually link
between projects to not rely on reactor / aggregator builds to achieve proper linking.
Furthermore, we maximize the use of offline links from javadoc artifacts.
This has several benefits:
- Repeatable builds: linking is done against the specified version versus whatever is published online
- More reliable build: does not depend on external apidocs server to be online
- Higher build performance: uses locally cached artifacts instead of http/https requests on each build
- Offline builds: when all artifacts are already locally available
- Private builds: linking to apidocs from private projects not publicly available
- Chicken-and-Egg resolved: can link between projects before publishing any of them
- New version linking: links are properly created before releasing new versions
Default
converted to
on maven-javadoc-plugin , taking
advantage of the new AO Javadoc Offline project.
Furthermore, the offline links also include JavaMail and Java EE.
Offline links are enabled by the new offlineLinks
profile, which is activated
by the presence of src/main/java
. If desired, this profile may be deactivated
during a build with mvn -P'!offlineLinks' …
.
-
Moved configuration into
where appropriate.
One notable consequence is that Javadocs are now fully formatted without
requiring the release
profile.
- Restored
Built-By
manifest entry on bundle
and war
packaging.
- Now supporting generated resources on all projects.
-
Enabled the wagon-ssh-external extension
on all projects, which supports access to artifact repositories via scpexe://…
URLs.
Projects that have access to their parent either directly or over HTTP/HTTPS may remove
wagon-ssh-external
from their .mvn/extensions.xml
. However,
if the parent is accessed through scpexe://…
, the declaration in extensions.xml
is still required.
-
Added
axis2-aar-maven-plugin for building web services.
- Configured manifest entries consistent with other plugins.
-
Changed
Built-By
manifest entries from defaulting to blank
to now defaulting to \${project.organization.name}
.
-
Enabled
on maven-war-plugin when
src/main/java
exists. This allows the classes to by used as a dependency.
This is particularly useful for our multi-project translation tools.
-
Set
on maven-surefire-plugin .
The full stack traces of exceptions during testing should help in debugging.
-
Defined default build resources of both
src/main/resources
and src/main/resources-filtered
(filtered).
Previously, we had obtained this behavior through configuring plugins directly, but missed the more proper
approach of defining in project/build/resources. This cleans-up the implementation, and allows other
parts of the configuration to work correctly when projects define different or additional resources.
-
Defined default test resources of both
src/test/resources
and src/test/resources-filtered
(filtered).
This is for consistency with the definition of compilation resources.
-
Added
tests ,
test-javadoc ,
and test-sources
artifacts, unless empty.
-
Configured
maven-war-plugin to support filtered
META-INF/context.xml
, which is used to provide development values to web applications:
-
Added filtered web resources
src/main/webapp-filtered
, which is expected
to include a META-INF/context.xml
. This means that projects
must have a src/main/webapp-filtered
directory,
even if just an empty directory.
-
Excluded
src/main/webapp/META-INF/context.xml
so that the filtered
version may be used. This file still must be present, however, as NetBeans uses
this file to determine how to deploy to local development Tomcat.
-
META-INF/context.xml
is not included in the WAR file. The expectation is production
values will be provided by the container.
-
Newer versions of Javadocs no longer use frames. We now build
API docs with target="_self"
for .
We still support building with older JDK versions,
in which target="_top"
is used so that links
can escape the frames.
- Updated plugin versions.
- Updated links to
- Changed default Java version from 1.7 to 1.8
-
Reduced use of property substitutions in
pom.xml
.
This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.
- Now setting build properties
maven.compiler.source
and maven.compiler.target
.
-
Now setting build property
javadoc.link.javamail
in parent POM
instead of on a per-project basis.
-
Now setting builds properties
documented.javase.version
and documented.javadoc.link.javase
in parent POM, with the default Java version (currently 1.8). This allows books to not specify
the Java version of the documented project when it is the default.
-
Renamed some build properties to better represent their usage:
-
Consolidated build properties
compiler.bootclasspath
and javac.bootclasspath
into a single property java.bootclasspath
.
javaVersion
to javase.version
javac.link.javaApi
to javadoc.link.javase
javac.link.javaApi.jdk*
to javadoc.link.javase.*
javac.link.javaeeApi.*
to javadoc.link.javaee.*
javac.link.javamailApi
to javadoc.link.javamail
java.bootclasspath
to javase.bootclasspath
javase.bootclasspath*
to javase.bootclasspath.*
documented.javaVersion
to documented.javase.version
documented.javac.link.javaApi
to documented.javadoc.link.javase
- Renamed profile
bootclasspaths
to javase.bootclasspath
.
- Added build properties for Java EE:
javaee.version
,default 6
javadoc.link.javaee
, default \${javadoc.link.javaee.6}
documented.javaee.version
, default 6
documented.javadoc.link.javaee
, default \${javadoc.link.javaee.6}
-
Added
configuration to maven-javadoc-plugin to build correctly in Java 11.
- Simplified use of
maven-gpg-plugin :
- Changed
lockMode to a fixed value "multiple"
- Removed
defaultKeyring
- Removed
useAgent
- Removed
publicKeyring
- Removed
secretKeyring
- Now using
--release
instead of -bootclasspath
when building with .
- Java updates:
- Java 13 is now end-of-life
- Java 14 is now current stable
- Java 15 is new beta
-
Changed default
doclint
from -Xdoclint:none
to -Xdoclint:all,-missing
.
- Updated plugin versions.
-
To significantly reduce the size of Javadocs, using new
AO Javadoc Resources
project instead of data:
URLs.
-
Set delimiters for maven-war-plugin
to match the configuration of maven-resources-plugin ,
using @{*}
.
Also enabled filteringDeploymentDescriptors
by default.
- Java updates:
- Java 12 is now end-of-life
- Java 13 is now current stable
- Java 14 is new beta
-
Changed
Include-Resource
to {maven-resources}, target/resources-filtered
in order to not leak full build paths into META-INF/MANIFEST.MF
- Updated version of
AO OSS Parent .
- New profile "POST-SNAPSHOT" that enables the use of
post-release builds as dependencies.
This profile is not active by default.
Activate in ~/.m2/settings.xml
to use post-release builds as dependencies:
This profile must not be active while performing a release. Deactivate with:
mvn -Prelease,'!POST-SNAPSHOT' …
Post-release builds happen after a release and before a new -SNAPSHOT is
started. They are used to ensure that previous releases still compile
against newer dependencies.
Furthermore, post-release builds may contain the following changes without
being promoted to the next -SNAPSHOT version:
- Updated parent POM
- Updated POM
- Updated Java version (without any source code changes)
- Updated dependency versions
- Updated javadocs
- Updated documentation
- Updated unit tests
- Deprecated methods and classes
- Renamed private fields and local variables
- Other changes to white-space or comments
Post-release builds also allow NetBeans to correctly connect projects
together for those who are actively developing multiple modules.
Those who are only using the dependency can use the regular release to
avoid the overhead of the daily check for updates.
- Updated version of
AO OSS Parent .
- License changed to LGPL v3.
- Moving PragmaticKM to GitHub and Maven Central Repository.
- Added
--allow-script-in-comments
for Javadoc in JDK 1.8.0_121+.
- Updated dependencies.
-
New parent POM, separate from aggregator POMs, to allow the addition of
modules without having to also release untouched modules within the same
overall project.
Previously, adding a module to the aggregator would
increment its version, which would then propagate all the way down to
update the parents of all modules. Since our projects are extremely
modular, this forced releases where only the parent version was modified.
We recommend a separation of parent and aggregator pom.xml
for any multi-module Maven project where each module is released
independently.