Sync from SUSE:ALP:Source:Standard:1.0 maven revision c1e0896cca1eedaed0bb8102909c39c0

This commit is contained in:
Adrian Schröter 2024-02-19 15:43:37 +01:00
commit d8b7dbc991
12 changed files with 1609 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,69 @@
From 6e8f6a1b27c09d0a84fb5f3b7269cf5840db04f8 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Wed, 1 Feb 2017 14:54:26 +0100
Subject: [PATCH 1/4] Adapt mvn script
---
apache-maven/src/bin/mvn | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn
index dfa384b8e..8c03825ed 100755
--- a/apache-maven/src/bin/mvn
+++ b/apache-maven/src/bin/mvn
@@ -22,7 +22,7 @@
#
# Environment Variable Prerequisites
#
-# JAVA_HOME Must point at your Java Development Kit installation.
+# JAVA_HOME (Optional) Must point at your Java Development Kit installation.
# MAVEN_ARGS (Optional) Arguments passed to Maven before CLI arguments.
# MAVEN_OPTS (Optional) Java runtime options used when Maven is executed.
# MAVEN_SKIP_RC (Optional) Flag to disable loading of mavenrc files.
@@ -38,12 +38,24 @@ if [ -z "$MAVEN_SKIP_RC" ] ; then
. /etc/mavenrc
fi
+ if [ -f /etc/java/maven.conf ] ; then
+ . /etc/java/maven.conf
+ fi
+
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
+if [ -f /usr/share/java-utils/java-functions ] ; then
+ . /usr/share/java-utils/java-functions
+ set_jvm
+ set_javacmd
+fi
+export JAVA_HOME
+export JAVACMD
+
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
mingw=false;
@@ -68,7 +80,8 @@ done
saveddir=`pwd`
-MAVEN_HOME=`dirname "$PRG"`/..
+MAVEN_HOME="${_FEDORA_MAVEN_HOME:-`dirname "$PRG"`/..}"
+unset _FEDORA_MAVEN_HOME
# make it fully qualified
MAVEN_HOME=`cd "$MAVEN_HOME" && pwd`
@@ -106,7 +119,7 @@ if [ ! -x "$JAVACMD" ] ; then
exit 1
fi
-CLASSWORLDS_JAR=`echo "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar`
+CLASSWORLDS_JAR=`build-classpath plexus-classworlds`
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# For Cygwin, switch paths to Windows format before running java
--
2.36.1

View File

@ -0,0 +1,51 @@
From d1e6e9bcce8553e85957987d05d28583fcb55fdf Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com>
Date: Tue, 6 Jun 2017 13:47:43 +0200
Subject: [PATCH 2/4] Invoke logback via reflection
---
.../cli/logging/impl/LogbackConfiguration.java | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java
index 4dc5a37b8..a977ba085 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java
@@ -31,21 +31,29 @@
public class LogbackConfiguration extends BaseSlf4jConfiguration {
@Override
public void setRootLoggerLevel(Level level) {
- ch.qos.logback.classic.Level value;
+ String value;
switch (level) {
case DEBUG:
- value = ch.qos.logback.classic.Level.DEBUG;
+ value = "DEBUG";
break;
case INFO:
- value = ch.qos.logback.classic.Level.INFO;
+ value = "INFO";
break;
default:
- value = ch.qos.logback.classic.Level.ERROR;
+ value = "ERROR";
break;
}
- ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)).setLevel(value);
+ Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
+ try {
+ Class<?> levelClass = Class.forName("ch.qos.logback.classic.Level");
+ Object logbackLevel = levelClass.getField(value).get(null);
+ Class<?> loggerClass = Class.forName("ch.qos.logback.classic.Logger");
+ loggerClass.getMethod("setLevel", new Class<?>[] {levelClass}).invoke(logger, new Object[] {logbackLevel});
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to initialize logback configuration", e);
+ }
}
@Override
--
2.40.1

View File

@ -0,0 +1,89 @@
From fdc9034faeb960d15aa39820d610e00cd7121e03 Mon Sep 17 00:00:00 2001
From: Marian Koncek <mkoncek@redhat.com>
Date: Thu, 5 Sep 2019 15:21:04 +0200
Subject: [PATCH 3/4] Remove dependency on powermock
---
.../StringSearchModelInterpolatorTest.java | 59 -------------------
1 file changed, 59 deletions(-)
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
index b2612e540..20b7162e2 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
@@ -35,8 +35,6 @@
import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
-import static org.powermock.reflect.Whitebox.getField;
-import static org.powermock.reflect.Whitebox.getInternalState;
/**
* @author jdcasey
@@ -344,63 +342,6 @@ public void testInterpolateObjectWithPomFile() throws Exception {
is(System.getProperty("user.dir") + File.separator + '.' + File.separator + "target"))));
}
- public void testNotInterpolateObjectWithFile() throws Exception {
- Model model = new Model();
-
- File baseDir = new File(System.getProperty("user.dir"));
-
- Properties p = new Properties();
-
- ObjectWithNotInterpolatedFile obj = new ObjectWithNotInterpolatedFile(baseDir);
-
- StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
-
- ModelBuildingRequest config = createModelBuildingRequest(p);
-
- SimpleProblemCollector collector = new SimpleProblemCollector();
- interpolator.interpolateObject(obj, model, new File("."), config, collector);
- assertProblemFree(collector);
-
- //noinspection unchecked
- Map<Class<?>, ?> cache = (Map<Class<?>, ?>)
- getField(StringSearchModelInterpolator.class, "CACHED_ENTRIES").get(null);
-
- Object objCacheItem = cache.get(Object.class);
- Object fileCacheItem = cache.get(File.class);
-
- assertNotNull(objCacheItem);
- assertNotNull(fileCacheItem);
-
- assertThat(((Object[]) getInternalState(objCacheItem, "fields")).length, is(0));
- assertThat(((Object[]) getInternalState(fileCacheItem, "fields")).length, is(0));
- }
-
- public void testNotInterpolateFile() throws Exception {
- Model model = new Model();
-
- File baseDir = new File(System.getProperty("user.dir"));
-
- Properties p = new Properties();
-
- StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
-
- ModelBuildingRequest config = createModelBuildingRequest(p);
-
- SimpleProblemCollector collector = new SimpleProblemCollector();
- interpolator.interpolateObject(baseDir, model, new File("."), config, collector);
- assertProblemFree(collector);
-
- //noinspection unchecked
- Map<Class<?>, ?> cache = (Map<Class<?>, ?>)
- getField(StringSearchModelInterpolator.class, "CACHED_ENTRIES").get(null);
-
- Object fileCacheItem = cache.get(File.class);
-
- assertNotNull(fileCacheItem);
-
- assertThat(((Object[]) getInternalState(fileCacheItem, "fields")).length, is(0));
- }
-
public void testConcurrentInterpolation() throws Exception {
final Model model = new Model();
--
2.40.1

View File

@ -0,0 +1,156 @@
From a46e8cb4641508c71379a07869551c770f18f1b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Tue, 2 May 2023 18:12:26 +0200
Subject: [PATCH 4/4] Fix build with qdox-2.0.1
---
.../org/apache/maven/plugin/DefaultExtensionRealmCache.java | 2 +-
.../org/apache/maven/plugin/DefaultPluginArtifactsCache.java | 2 +-
.../java/org/apache/maven/plugin/DefaultPluginRealmCache.java | 2 +-
.../java/org/apache/maven/plugin/ExtensionRealmCache.java | 4 ++--
.../java/org/apache/maven/plugin/PluginArtifactsCache.java | 4 ++--
.../main/java/org/apache/maven/plugin/PluginRealmCache.java | 4 ++--
.../org/apache/maven/project/DefaultProjectRealmCache.java | 2 +-
.../main/java/org/apache/maven/project/ProjectRealmCache.java | 4 ++--
.../maven/project/artifact/DefaultProjectArtifactsCache.java | 2 +-
.../apache/maven/project/artifact/ProjectArtifactsCache.java | 4 ++--
10 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
index e2b712305..ce7bcae4e 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
@@ -138,7 +138,7 @@ public void flush() {
cache.clear();
}
- public void register(MavenProject project, Key key, CacheRecord record) {
+ public void register(MavenProject project, Key key, CacheRecord record_) {
// default cache does not track extension usage
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java
index f2088b593..e5d7244fd 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java
@@ -177,7 +177,7 @@ protected static boolean pluginEquals(Plugin a, Plugin b) {
return CacheUtils.pluginEquals(a, b);
}
- public void register(MavenProject project, Key cacheKey, CacheRecord record) {
+ public void register(MavenProject project, Key cacheKey, CacheRecord record_) {
// default cache does not track record usage
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
index 10321374b..c9e1d0e59 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
@@ -204,7 +204,7 @@ protected static boolean pluginEquals(Plugin a, Plugin b) {
return CacheUtils.pluginEquals(a, b);
}
- public void register(MavenProject project, Key key, CacheRecord record) {
+ public void register(MavenProject project, Key key, CacheRecord record_) {
// default cache does not track plugin usage
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java
index 022b99320..b5cb6e66a 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java
@@ -86,7 +86,7 @@ CacheRecord put(
* cache.
*
* @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
+ * @param record_ The cache record being used for the project, must not be {@code null}.
*/
- void register(MavenProject project, Key key, CacheRecord record);
+ void register(MavenProject project, Key key, CacheRecord record_);
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java
index b0c07ae9a..97f76524c 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java
@@ -92,7 +92,7 @@ Key createKey(
* cache.
*
* @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
+ * @param record_ The cache record being used for the project, must not be {@code null}.
*/
- void register(MavenProject project, Key cacheKey, CacheRecord record);
+ void register(MavenProject project, Key cacheKey, CacheRecord record_);
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
index bf655efc3..7b0e25259 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
@@ -102,7 +102,7 @@ default CacheRecord get(Key key, PluginRealmSupplier supplier)
* cache.
*
* @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
+ * @param record_ The cache record being used for the project, must not be {@code null}.
*/
- void register(MavenProject project, Key key, CacheRecord record);
+ void register(MavenProject project, Key key, CacheRecord record_);
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java
index 1a1f70638..cb446c759 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java
@@ -115,7 +115,7 @@ public void flush() {
cache.clear();
}
- public void register(MavenProject project, Key key, CacheRecord record) {
+ public void register(MavenProject project, Key key, CacheRecord record_) {
// default cache does not track record usage
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java b/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java
index 241c86095..922ec982c 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java
@@ -77,7 +77,7 @@ public DependencyFilter getExtensionArtifactFilter() {
* cache.
*
* @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
+ * @param record_ The cache record being used for the project, must not be {@code null}.
*/
- void register(MavenProject project, Key key, CacheRecord record);
+ void register(MavenProject project, Key key, CacheRecord record_);
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java
index c45128530..a854fd234 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java
+++ b/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultProjectArtifactsCache.java
@@ -227,7 +227,7 @@ public void flush() {
}
@Override
- public void register(MavenProject project, Key cacheKey, CacheRecord record) {
+ public void register(MavenProject project, Key cacheKey, CacheRecord record_) {
// default cache does not track record usage
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java b/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java
index 025800698..f6ba70b86 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java
+++ b/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactsCache.java
@@ -93,7 +93,7 @@ Key createKey(
* cache.
*
* @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
+ * @param record_ The cache record being used for the project, must not be {@code null}.
*/
- void register(MavenProject project, Key cacheKey, CacheRecord record);
+ void register(MavenProject project, Key cacheKey, CacheRecord record_);
}
--
2.40.1

View File

@ -0,0 +1,65 @@
From 599dc0284287da5d48f578f5fe90b84dd4e0e485 Mon Sep 17 00:00:00 2001
From: Emmanuel Bourg <ebourg@apache.org>
Date: Mon, 4 Sep 2023 17:10:19 +0200
Subject: [PATCH 5/5] Reproducible maven.build.timestamp
Set the maven.build.timestamp variable to the date defined by
the SOURCE_DATE_EPOCH environment variable to make the Maven
builds reproducible.
---
.../interpolation/BuildTimestampValueSource.java | 10 +++++++++-
.../maven/model/interpolation/MavenBuildTimestamp.java | 10 +++++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java b/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
index f2af8036a..9e0db2cb0 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
@@ -44,7 +44,15 @@ public BuildTimestampValueSource(Date startTime, String format) {
public Object getValue(String expression) {
if ("build.timestamp".equals(expression) || "maven.build.timestamp".equals(expression)) {
if (formattedDate == null && startTime != null) {
- formattedDate = new SimpleDateFormat(format).format(startTime);
+ if ( System.getenv( "SOURCE_DATE_EPOCH" ) == null ) {
+ formattedDate = new SimpleDateFormat( format ).format( startTime );
+ } else {
+ // Use the SOURCE_DATE_EPOCH timestamp and make the format locale insensitive
+ SimpleDateFormat fmt = new SimpleDateFormat( format, java.util.Locale.ENGLISH );
+ fmt.setTimeZone( java.util.TimeZone.getTimeZone( "UTC" ) );
+ Date date = new Date( 1000 * Long.parseLong( System.getenv( "SOURCE_DATE_EPOCH" ) ) );
+ formattedDate = fmt.format( date );
+ }
}
return formattedDate;
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
index e1721334f..2ea2ce381 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
@@ -21,6 +21,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.Locale;
import java.util.Properties;
import java.util.TimeZone;
@@ -56,7 +57,14 @@ public MavenBuildTimestamp(Date time, String timestampFormat) {
if (time == null) {
time = new Date();
}
- SimpleDateFormat dateFormat = new SimpleDateFormat(timestampFormat);
+
+ Locale locale = Locale.getDefault();
+ if ( System.getenv( "SOURCE_DATE_EPOCH" ) != null ) {
+ time = new Date( 1000 * Long.parseLong( System.getenv( "SOURCE_DATE_EPOCH" ) ) );
+ locale = Locale.ENGLISH;
+ }
+
+ SimpleDateFormat dateFormat = new SimpleDateFormat( timestampFormat, locale );
dateFormat.setCalendar(new GregorianCalendar());
dateFormat.setTimeZone(DEFAULT_BUILD_TIME_ZONE);
formattedTimestamp = dateFormat.format(time);
--
2.42.0

BIN
apache-maven-3.9.6-build.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
apache-maven-3.9.6-src.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

90
maven-bash-completion Normal file
View File

@ -0,0 +1,90 @@
_m2_make_goals()
{
plugin=$1
mojos=$2
for mojo in $mojos
do
export goals="$goals $plugin:$mojo"
done
}
_m2_complete()
{
local cur goals
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case "${prev}" in
-f | --file|-l|--log-file)
COMPREPLY=( $(compgen -f ${cur}) )
return 0
;;
*);;
esac
goals='clean compile test install package deploy site verify'
if [[ ${cur} == -* ]] ; then
goals="$goals -am --also-make
-amd --also-make-dependents
-B --batch-mode
-C --strict-checksums
-c --lax-checksums
-cpu --check-plugin-updates
-D --define
-e --errors
-emp --encrypt-master-password
-ep --encrypt-password
-f --file
-fae --fail-at-end
-ff --fail-fast
-fn --fail-never
-gs --global-settings
-h --help
-l --log-file
-N --non-recursive
-npr --no-plugin-registry
-npu --no-plugin-updates
-nsu --no-snapshot-updates
-o --offline
-P --activate-profiles
-pl --projects
-q --quiet
-rf --resume-from
-s --settings
-T --threads
-t --toolchains
-U --update-snapshots
-up --update-plugins
-V --show-version
-v --version
-X --debug
-Dmaven.test.skip=true
-Dmaven.compiler.source=1.5
-Dmaven.compiler.source=1.6
-Dmaven.compiler.source=1.7
-Dmaven.compiler.target=1.5
-Dmaven.compiler.target=1.6
-Dmaven.compiler.target=1.7
-Dproject.build.sourceEncoding=UTF-8
-Dmaven.repo.local=
-Dmaven.local.depmap.file=
-Dmaven.local.debug=true
-Dmaven.local.mode=true"
fi
goals=$goals _m2_make_goals "eclipse" "eclipse"
goals=$goals _m2_make_goals "idea" "idea"
goals=$goals _m2_make_goals "assembly" "assembly"
goals=$goals _m2_make_goals "plexus" "app bundle-application bundle-runtime descriptor runtime service"
goals=$goals _m2_make_goals "dependency" "analyze analyze-dep-mgt analyze-only analyze-report analyze-duplicate
build-classpath copy copy-dependencies get go-offline list properties
purge-local-repository resolve resolve-plugins sources tree unpack
unpack-dependencies"
cur=`echo $cur | sed 's/\\\\//g'`
COMPREPLY=($(compgen -W "${goals}" -- ${cur} | sed 's/\\\\//g') )
}
complete -F _m2_complete -o filenames mvn

536
maven.changes Normal file
View File

@ -0,0 +1,536 @@
-------------------------------------------------------------------
Tue Jan 30 07:13:33 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Upgrade tu upstream version 3.9.6
* Bug
+ MNG-7851: Error message when modelVersion is 4.0 is confusing
* Improvement
+ MNG-7875: Colorize transfer messages
+ MNG-7895: Support ${project.basedir} in file profile
activation
+ MNG-7939: Allow to exclude plugins from validation
* Task
+ MNG-7856: Maven Resolver Provider classes ctor change
+ MNG-7870: Undeprecate wrongly deprecated repository metadata
+ MNG-7872: Deprecate
org.apache.maven.repository.internal.MavenResolverModule
+ MNG-7874: maven-resolver-provider: introduce NAME constants.
* Dependency upgrade
+ MNG-7859: Update to Resolver 1.9.16
+ MNG-7913: Upgrade Sisu version to 0.9.0.M2
+ MNG-7934: Upgrade Resolver version to 1.9.18
+ MNG-7942: Upgrade to parent POM 41
+ MNG-7943: Upgrade default plugin bindings
-------------------------------------------------------------------
Thu Sep 21 12:03:34 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Upgrade tu upstream version 3.9.4
* Bug
+ MNG-7705: Sporadic failures on multiple builds sharing the
same local repo when writing the .lastUpdated file
+ MNG-7786: Maven Plugin Validation message is misleading
+ MNG-7795: IllegalArgumentException: 'other' has different root
during plugin validation
+ MNG-7796: Top directory cannot be computed
+ MNG-7799: Plugin validation falsely reports there are issues
(but shows none)
+ MNG-7811: Plugins verification - reports are inconsistent
+ MNG-7818: [REGRESSION] maven improperly excludes hamcrest-core
from junit
+ MNG-7819: Create IT that exercise file locking with snapshots
+ MNG-7846: endless loop in DefaultExceptionHandler.getMessage()
* Improvement
+ MNG-7698: Allow comments in .mvn/maven.config
+ MNG-7785: Clean usage of SessionData
+ MNG-7787: Introduce new options for plugin validation
+ MNG-7788: Plugin Validation Report should be printed before
build summary
+ MNG-7789: Plugin Dependency Validations use wrong data set
+ MNG-7806: Plugins verification - remove used in module(s)
report
+ MNG-7823: Make plugin validation level parsing more consistent
* Task
+ MNG-5987: Document the algorithm calculating the order of
plugin executions inside a phase.
+ MNG-7743: Make the build work on JDK 20
+ MNG-7790: Update lifecycle plugins
+ MNG-7791: Split validation issues into "user actionable" and
"plugin dev actionable"
+ MNG-7797: Return BRIEF mode, simply map it onto SUMMARY
+ MNG-7807: Update Super POM plugins
* Dependency upgrade
+ MNG-7800: Upgrade to Maven Resolver 1.9.13
+ MNG-7816: Bump maven parent from 39 to 40
+ MNG-7828: Bump guava from 31.1-jre to 32.0.1-jre
+ MNG-7847: Upgrade to Resolver 1.9.14
-------------------------------------------------------------------
Tue Sep 12 12:55:07 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Reproducible builds: do not output build number
-------------------------------------------------------------------
Mon Sep 4 15:13:23 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* 0005-Reproducible-maven.build.timestamp.patch
+ debian patch to make maven builds more reproducible
-------------------------------------------------------------------
Mon Jun 19 15:31:21 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.9.2
* Bug
+ MNG-7750: Interpolated properties in originalModel in
an active profile.
+ MNG-7759: java.lang.NullPointerException at org.apache
.maven.repository.internal.DefaultModelCache.newInstance
(DefaultModelCache.java:37)
* Improvement
+ MNG-7712: Core should issue a warning if plugin depends
on maven-compat
+ MNG-7741: Add more information when using
-Dmaven.repo.local.recordReverseTree=true
+ MNG-7754: Improvement and extension of plugin validation
+ MNG-7767: Tone down plugin validation report
+ MNG-7776: don't fingerprint Sigstore signatures (like GPG)
+ MNG-7778: Maven should print suppressed exceptions when a
mojo fails
* Task
+ MNG-7749: Upgrade animal-sniffer from 1.21 to 1.23
+ MNG-7774: Maven config and command line interpolation
-------------------------------------------------------------------
Thu May 11 08:39:04 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Modified patch:
* 0001-Adapt-mvn-script.patch
+ revert to older version which worked well (bsc#1211198)
-------------------------------------------------------------------
Wed May 3 11:44:20 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.9.1
* Changes of version 3.8.7:
+ Regression fixes from Maven 3.8.6
+ General fixes
+ Maven Wagon upgrade
* Changes of verson 3.8.8
+ Regression fixes from Maven 3.8.7
+ General fixes
+ Non-functional backports and improvements from 3.9.0
* Changes of version 3.9.0
+ Minimum Java version to use with Maven 3.9.0 is raised to
Java 8.
+ With Java 8, upgrade of several key dependencies became
possible as well.
+ Several backports from Maven 4.x line.
+ Long outstanding issue fixes from Maven 3.x line.
+ Cutting ties with Maven 2 backward compatibility, preparing
grounds for Maven 4.
+ General fixes and improvements.
+ The Maven Resolver transport has changed from Wagon to “native
HTTP”, see Resolver Transport guide.
+ Maven 2.x was auto-injecting an ancient version of
plexus-utils dependency into the plugin classpath, and Maven
3.x continued doing this to preserve backward compatibility.
Starting with Maven 3.9, it does not happen anymore. This
change may lead to plugin breakage. The fix for affected
plugin maintainers is to explicitly declare a dependency on
plexus-utils. The workaround for affected plugin users is to
add this dependency to plugin dependencies until issue is
fixed by the affected plugin maintainer.
+ Mojos are prevented to boostrap new instance of
RepositorySystem (for example by using deprecated
ServiceLocator), they should reuse RepositorySystem instance
provided by Maven instead. See MNG-7471.
+ Each line in .mvn/maven.config is now interpreted as a single
argument. That is, if the file contains multiple arguments,
these must now be placed on separate lines, see MNG-7684.
* Changes of version 3.9.1:
+ Regression fixes from Maven 3.9.0
+ General performance and other fixes
- Changed patches:
* 0001-Adapt-mvn-script.patch
* 0002-Invoke-logback-via-reflection.patch
+ rediff to changed context
* 0004-Remove-dependency-on-powermock.patch
-> 0003-Remove-dependency-on-powermock.patch
* 0007-Fix-build-with-qdox-2.0.1.patch
-> 0004-Fix-build-with-qdox-2.0.1.patch
+ rediff and rename to have the sequence of patches right
- Removed patches:
* 0003-Use-non-shaded-HTTP-wagon.patch
* 0005-Port-to-maven-resolver-1.7.2.patch
* 0006-Restore-DefaultModelValidator-compatibility-with-Mav.patch
+ not needed with 3.9.1
-------------------------------------------------------------------
Mon Aug 29 08:50:39 UTC 2022 - Thorsten Kukuk <kukuk@suse.com>
- Move mvn.1 from bin to man directory
-------------------------------------------------------------------
Mon Jul 25 12:13:39 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.8.6
* Bug
+ MNG-7432: [REGRESSION] Resolver session contains
non-MavenWorkspaceReader
+ MNG-7433: [REGRESSION] Multiple maven instances working on
same source tree can lock each other
+ MNG-7441: Update Version of (optional) Logback to Address
CVE-2021-42550, bsc#1193795
+ MNG-7448: Don't ignore bin/ otherwise bin/ in apache-maven
module cannot be readded
+ MNG-7455: [REGRESSION] IllegalStateException in
SessionScope during guice injection in multithreaded build
+ MNG-7459: Revert MNG-7347 (SessionScoped beans should be
singletons for a given session)
+ MNG-7467: [REGRESSION] Compilation failure with relocated
transitive dependency
+ MNG-7487: Fix deadlock during forked lifecycle executions
+ MNG-7493: [REGRESSION] Resolving dependencies between
submodules fails
* New Feature
+ MNG-7486: Create a multiline message helper for boxed log
messages
* Improvement
+ MNG-7445: to refactor some useless code
+ MNG-7476: Display a warning when an aggregator mojo is
locking other mojo executions
* Task
+ MNG-7466: Align Assembly Descriptor NS versions
* Dependency upgrade
+ MNG-7488: Upgrade SLF4J to 1.7.36
+ MNG-7489: Upgrade JUnit to 4.13.2
+ MNG-7490: Upgrade Plexus Utils to 3.3.1
-------------------------------------------------------------------
Mon May 16 14:26:42 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.8.5
* Bug
+ MNG-5180: Versioning's snapshot version list is not
included in metadata merge
+ MNG-5561: Plugin relocation loses configuration
+ MNG-5982: The POM for ... is invalid, transitive
dependencies ... while property was overriden
+ MNG-6326: Build continues when core extensions aren't
found
+ MNG-6727: Using version range in parent and CI Friendly
Version fails
+ MNG-6802: FileProfileActivator changes
FileProfileActivator.exists which lets flattened
resolveCiFriendliesOnly depending fail activating profile
+ MNG-7156: Parallel build can cause issues between clean
and forked goals
+ MNG-7335: [Regression] Parallel build fails due to missing
JAR artifacts in compilePath
+ MNG-7347: SessionScoped beans should be singletons for a
given session
+ MNG-7357: All Maven Core JARs have unusual entry order
+ MNG-7362: DefaultArtifactResolver has spurious "Failure
detected" INFO log
+ MNG-7374: Mutating RelocatedArtifact does not retain type
+ MNG-7386: ModelMerger$MergingList is not serializable
+ MNG-7402: BuildListCalculator never detaches the
classloader
+ MNG-7417: Several classes do not set properties properly
for building requests
* New Feature
+ MNG-7395: Support interpolation in extensions.xml
+ MNG-7407: Introduce a ModelVersionProcessor component to
make CI Friendly Versions pluggable
* Improvement
+ MNG-6960: Use RuntimeInformation instead of reading
properties
+ MNG-7349: Limit relocation warning message to direct
dependencies only
+ MNG-7380: Don't log non-threadsafe warning if only
building a single module
+ MNG-7381: Shorten parallel builder thread name to
artifactId, conditionally with groupId
+ MNG-7385: Improve documentation on repository metadata
+ MNG-7400: Allow more WorkspaceReaders to participate
+ MNG-7408: Explain reporting plugin version automatic
selection (in Maven 3)
* Dependency upgrade
+ MNG-7370: Upgrade Maven Wagon to 3.5.1
+ MNG-7384: Upgrade Maven JAR Plugin to 3.2.2
+ MNG-7428: Upgrade Maven Parent to 35
- Modified patches:
* 0001-Adapt-mvn-script.patch
* 0002-Invoke-logback-via-reflection.patch
* 0005-Port-to-maven-resolver-1.7.2.patch
* 0004-Use-non-shaded-HTTP-wagon.patch ->
0003-Use-non-shaded-HTTP-wagon.patch
+ rebase
* qdox-2.0.1.patch -> 0007-Fix-build-with-qdox-2.0.1.patch
+ rebase using git
- Added patches:
* 0004-Remove-dependency-on-powermock.patch
+ Remove the non-interpolated tests that require powermock
* 0006-Restore-DefaultModelValidator-compatibility-with-Mav.patch
+ XMvn was relying on default constructor for the
org.apache.maven.model.validation.DefaultModelValidator,
which is not generated, since a non-default one is defined.
+ This adds the no-parameter constructor back implicitely
-------------------------------------------------------------------
Fri May 13 09:01:43 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Fix build with modello-2.0.0
-------------------------------------------------------------------
Wed Apr 27 14:00:15 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Remove using of alternatives, since the symlinks are in a separate
package that one can decide not to install and this is the only
provider for mvn and mvnDebug links
- Remove dependency on cglib and aopalliance, since the no_aop
version of guice does not really depend on them
-------------------------------------------------------------------
Fri Mar 11 12:11:36 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* 0005-Port-to-maven-resolver-1.7.2.patch
+ fix build with the API incompatible maven-resolver 1.7.3
- Link the new maven-resolver-named-locks artifact too
-------------------------------------------------------------------
Thu Jan 13 07:12:09 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.8.4
* Sub-task
+ MNG-6281: ArrayIndexOutOfBoundsException caused by pom.xml
with invalid/duplicate XML
* Bug
+ MNG-4706: Multithreaded building can create bad files for
downloaded artifacts in local repository
+ MNG-5307: NPE during resolution of dependencies - parallel
mode
+ MNG-5315: Artifact resolution sporadically fails in
parallel builds
+ MNG-5838: Maven on No-File-Lock Systems
+ MNG-5868: Adding serval times the same artifact via
MavenProjectHelper (attachArtifact) keep adding to the List
duplicate artifacts
+ MNG-6071: GetResource ('/) returns 'null' if build is
started with -f
+ MNG-6216: ArrayIndexOutOfBoundsException when parsing POM
+ MNG-6239: Jansi messes up System.err and System.out
+ MNG-6380: Option -Dstyle.color=always doesn't force color
output
+ MNG-6604: Intermittent failures while downloading GAVs from
Nexus
+ MNG-6648: 'mavenrc_pre' script does not receive arguments
like mavenrc in Bourne shell does
+ MNG-6719: mvn color output escape keys w/ "| tee xxx.log"
on Win with git/bash
+ MNG-6737: StackOverflowError when version ranges are
unsolvable and graph contains a cycle
+ MNG-6767: Plugin with ${project.groupId} resolved
improperly
+ MNG-6819: NullPointerException for
DefaultArtifactDescriptorReader.loadPom
+ MNG-6828: DependencyResolutionException breaks
serialization
+ MNG-6842: ProjectBuilderTest uses Guava, but Guava is not
defined in dependencies
+ MNG-6843: Parallel build fails due to missing JAR artifacts
in compilePath
+ MNG-6850: Prevent printing the EXEC_DIR when it's just a
disk letter
+ MNG-6921: Maven compile with properties ${artifactId} and
${project.build.finalName} occurs
java.lang.NullPointerException
+ MNG-6937: StringSearchModelInterpolatorTest fails on
symlinked paths
+ MNG-6964: Maven version sorting is internally inconsistent
+ MNG-6983: Plugin key can get out of sync with artifactId
and groupId
+ MNG-7000: metadata.mdo contains invalid link to schema
+ MNG-7032: Option -B still showing formatting when used
with --version
+ MNG-7034: StackOverflowError thrown if a cycle exists in
BOM imports
+ MNG-7045: Drop CDI API from Maven
+ MNG-7090: mvnDebug does not work on Java 11+
+ MNG-7127: NullPointerException in
MavenCliTest.testStyleColors in JDK 16
+ MNG-7155: make sources jar reproducible (upgrade
maven-source-plugin to 3.2.1)
+ MNG-7161: Error thrown during uninstalling of JAnsi
+ MNG-7214: Bad transitive dependency parent from CDI API
+ MNG-7215: [Regression] Maven Site Plugin cannot resolve
parent site descriptor without locale
+ MNG-7216: Revert MNG-7170
+ MNG-7218: [Regression]
o.a.m.model.Build.getSourceDirectory() incorrectly returns
absolute dir on 3.8.2
+ MNG-7219: [Regression] plexus-cipher missing from
transitive dependencies
+ MNG-7220: [REGRESSION] test-classpath incorrectly resolved
+ MNG-7251: Fix threadLocalArtifactsHolder leaking into
cloned project
+ MNG-7253: Relocation message is never shown
+ MNG-7270: Maven startup script (init) calls which(1) which
is an external command
+ MNG-7285: [Regression] MavenProject.getArtifacts() not
returning correct value across multiple threads
+ MNG-7300: [Regression] Reloading web application (Enter)
fails due to java.lang.ClassNotFoundException
* New Feature
+ MNG-7149: Introduce MAVEN_DEBUG_ADDRESS in mvnDebug scripts
+ MNG-7164: Add constructor MojoExecutionException(Throwable)
* Improvement
+ MNG-2802: Concurrent-safe access to local Maven repository
+ MNG-6471: Parallel builder should use the module name as
thread name
+ MNG-6754: Set the same timestamp in multi module builds
+ MNG-6810: Remove profiles in maven-model
+ MNG-6811: Remove unnecessary filtering configuration
+ MNG-6816: Prefer System.lineSeparator() over system
properties
+ MNG-6827: Replace deprecated StringUtils#defaultString()
from Plexus Utils
+ MNG-6837: Simplify detection of the MAVEN_HOME and make it
fully qualified on Windows
+ MNG-6844: Use StandardCharsets and remove outdated
@SuppressWarnings
+ MNG-6853: Don't box primitives where it's not needed
+ MNG-6859: Build not easily reproducible when built from
source release archive
+ MNG-6873: Inconsistent library versions notice
+ MNG-6967: Improve the command line output from
maven-artifact
+ MNG-6987: Reorder groupId before artifactId when writing an
exclusion using maven-model
+ MNG-7010: Omit "NB: JAVA_HOME should point to a JDK not a
JRE" except when that is the problem
+ MNG-7064: Use HTTPS for schema location in global
settings.xml
+ MNG-7080: Add a --color option
+ MNG-7170: Allow to associate pomFile/${basedir} with
DefaultProjectBuilder.build(ModelSource, ...)
+ MNG-7180: Make --color option behave more like BSD/GNU
grep's --color option
+ MNG-7181: Make --version support -q
+ MNG-7185: Describe explicit and recommended version for
VersionRange.createFromVersionSpec()
+ MNG-7190: Load mavenrc from /usr/local/etc also in Bourne
shell script
+ MNG-7235: Speed improvements when calculating the sorted
project graph
+ MNG-7236: The DefaultPluginVersionResolver should cache
results for the session
* Task
+ MNG-6598: Maven 3.6.0 and Surefire problem
+ MNG-6884: Cleanup POM File after version upgrade
+ MNG-7172: Remove expansion of Jansi native libraries
+ MNG-7184: document .mavenrc/maven_pre.bat|cmd scripts and
MAVEN_SKIP_RC environment variable
+ MNG-7252: Fix warnings issued by dependency:analyze
+ MNG-7254: Expand Windows native libraries for Jansi due to
JDK-8195129 (workaround)
+ MNG-7312: Revert ThreadLocal approach from MNG-6843 and
MNG-7251
* Dependency upgrade
+ MNG-6818: Upgrade Plexus Utils to 3.3.0
+ MNG-6841: Upgrade Plexus Interpolation to 1.26
+ MNG-6872: Found CVEs in your dependencies - plexus-utils
(tests)
+ MNG-6874: Upgrade Maven Parent to 34
+ MNG-6886: Upgrade plexus-cipher 1.8
+ MNG-6993: Upgrade SLF4J to 1.7.30
+ MNG-7152: Upgrade Maven Resolver to 1.6.3
+ MNG-7177: Upgrade Maven Shared Utils to 3.3.4
+ MNG-7179: Upgrade Jansi to 2.3.3
+ MNG-7186: Upgrade Guice to 4.2.2
+ MNG-7196: Upgrade Jansi to 2.3.4
+ MNG-7198: Upgrade SLF4J to 1.7.32
+ MNG-7246: Upgrade Plexus Cipher and Sec Dispatcher to 2.0
+ MNG-7250: Upgrade Sisu Inject/Plexus to 0.3.5
+ MNG-7331: Upgrade Jansi to 2.4.0
- Added patch:
* qdox-2.0.1.patch
+ Fix syntax error with qdox 2.0.1 and method declarations
containing the new keyword "record" as name of variables
-------------------------------------------------------------------
Sun Nov 21 08:49:59 UTC 2021 - Andreas Stieger <andreas.stieger@gmx.de>
- add upstream signing key and verify source signature
-------------------------------------------------------------------
Tue Sep 14 14:44:11 UTC 2021 - Stefan Schubert <schubi@suse.de>
- Use libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Tue May 11 09:57:12 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Do not build against the compatibility version guava20 any more,
but use the default guava package
-------------------------------------------------------------------
Tue Apr 27 07:25:29 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.8.1
* Security fixes:
+ CVE-2021-26291 and CVE-2020-13956
* Bug:
+ MNG-7128: improve error message when blocked repository
defined in build POM
* New Feature
+ MNG-7116: Add support for mirror selector on
external:http:*
+ MNG-7117: Add support for blocking mirrors
+ MNG-7118: Block external HTTP repositories by default
* Dependency upgrade
+ MNG-7119: Upgrade Maven Wagon to 3.4.3
+ MNG-7123: Upgrade Maven Resolver to 1.6.2
-------------------------------------------------------------------
Sun Mar 1 08:27:38 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Let maven-lib obsolete maven-jansi
-------------------------------------------------------------------
Fri Feb 7 15:50:55 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.6.3
- Modified patches:
* 0002-Invoke-logback-via-reflection.patch
* 0004-Use-non-shaded-HTTP-wagon.patch
+ Adapt to changed line endings
-------------------------------------------------------------------
Thu Nov 21 15:53:17 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Upgrade to upstream version 3.6.2
- Modified patch:
* 0002-Invoke-logback-via-reflection.patch
+ adapt to changed context
- Removed patch:
* 0003-Revert-MNG-6335-Update-Mockito-to-2.12.0.patch
+ we don't need this patch, since we are not running tests
by default
- Added patch:
* 0004-Use-non-shaded-HTTP-wagon.patch
+ we don't use/distribute shared wagon-http
-------------------------------------------------------------------
Mon Apr 1 23:29:07 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Adjust RPM groups. Avoid bashisms in %postun.
-------------------------------------------------------------------
Fri Mar 29 07:58:04 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Initial packaging of maven 3.5.4
- Generate and customize ant build files

371
maven.spec Normal file
View File

@ -0,0 +1,371 @@
#
# spec file for package maven
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global bundled_slf4j_version 1.7.25
%global homedir %{_datadir}/%{name}%{?maven_version_suffix}
%global confdir %{_sysconfdir}/%{name}%{?maven_version_suffix}
Name: maven
Version: 3.9.6
Release: 0
Summary: Java project management and project comprehension tool
# maven itself is ASL 2.0
# bundled slf4j is MIT
License: Apache-2.0 AND MIT
Group: Development/Tools/Building
URL: https://maven.apache.org/
Source0: http://archive.apache.org/dist/%{name}/%{name}-3/%{version}/source/apache-%{name}-%{version}-src.tar.gz
Source1: maven-bash-completion
Source2: mvn.1
Source10: apache-%{name}-%{version}-build.tar.xz
Patch1: 0001-Adapt-mvn-script.patch
# Downstream-specific, avoids dependency on logback
Patch2: 0002-Invoke-logback-via-reflection.patch
Patch3: 0003-Remove-dependency-on-powermock.patch
Patch4: 0004-Fix-build-with-qdox-2.0.1.patch
Patch5: 0005-Reproducible-maven.build.timestamp.patch
BuildRequires: ant
BuildRequires: aopalliance
BuildRequires: apache-commons-cli
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-lang3
BuildRequires: apache-commons-logging
BuildRequires: atinject
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: glassfish-annotation-api
BuildRequires: google-guice
BuildRequires: guava
BuildRequires: httpcomponents-client
BuildRequires: httpcomponents-core
BuildRequires: jansi
BuildRequires: javapackages-local
BuildRequires: jcl-over-slf4j
BuildRequires: jdom2
BuildRequires: maven-resolver-api >= 1.8.1
BuildRequires: maven-resolver-connector-basic
BuildRequires: maven-resolver-impl
BuildRequires: maven-resolver-named-locks
BuildRequires: maven-resolver-spi
BuildRequires: maven-resolver-transport-file
BuildRequires: maven-resolver-transport-http
BuildRequires: maven-resolver-transport-wagon
BuildRequires: maven-resolver-util
BuildRequires: maven-shared-utils
BuildRequires: maven-wagon-file
BuildRequires: maven-wagon-http
BuildRequires: maven-wagon-http-shared
BuildRequires: maven-wagon-provider-api
BuildRequires: modello >= 2.0.0
BuildRequires: objectweb-asm
BuildRequires: plexus-cipher >= 2.0
BuildRequires: plexus-classworlds
BuildRequires: plexus-cli
BuildRequires: plexus-containers-component-annotations
BuildRequires: plexus-interpolation
BuildRequires: plexus-metadata-generator
BuildRequires: plexus-sec-dispatcher >= 2.0
BuildRequires: plexus-utils
BuildRequires: qdox
BuildRequires: sisu-inject
BuildRequires: sisu-plexus
BuildRequires: slf4j
BuildRequires: slf4j-sources
BuildRequires: unix2dos
BuildRequires: xbean
BuildRequires: xmvn-install
BuildRequires: xmvn-resolve
BuildRequires: xmvn-subst
BuildRequires: mvn(org.apache.maven:maven-parent:pom:)
Requires: %{name}-lib = %{version}-%{release}
Requires(post): aaa_base
Requires(postun): aaa_base
# maven-lib cannot be noarch because of the position of jansi.jar
#BuildArch: noarch
%description
Maven is a software project management and comprehension tool. Based on the
concept of a project object model (POM), Maven can manage a project's build,
reporting and documentation from a central piece of information.
%package lib
Summary: Core part of Maven
# Require full javapackages-tools since maven-script uses
# /usr/share/java-utils/java-functions
# XMvn does generate auto-requires, but explicit requires are still
# needed because some symlinked JARs are not present in Maven POMs or
# their dependency scope prevents them from being added automatically
# by XMvn. It would be possible to explicitly specify only
# dependencies which are not generated automatically, but adding
# everything seems to be easier.
Group: Development/Tools/Building
Requires: aopalliance
Requires: apache-commons-cli
Requires: apache-commons-codec
Requires: apache-commons-lang3
Requires: apache-commons-logging
Requires: atinject
Requires: glassfish-annotation-api
Requires: google-guice
Requires: guava
Requires: httpcomponents-client
Requires: httpcomponents-core
Requires: jansi
Requires: javapackages-tools
Requires: jcl-over-slf4j
Requires: junit
Requires: maven-resolver-api
Requires: maven-resolver-connector-basic
Requires: maven-resolver-impl
Requires: maven-resolver-named-locks
Requires: maven-resolver-spi
Requires: maven-resolver-transport-file
Requires: maven-resolver-transport-http
Requires: maven-resolver-transport-wagon
Requires: maven-resolver-util
Requires: maven-shared-utils
Requires: maven-wagon-file
Requires: maven-wagon-http
Requires: maven-wagon-http-shared
Requires: maven-wagon-provider-api
Requires: objectweb-asm
Requires: plexus-cipher
Requires: plexus-classworlds
Requires: plexus-containers-component-annotations
Requires: plexus-interpolation
Requires: plexus-sec-dispatcher
Requires: plexus-utils
Requires: sisu-inject
Requires: sisu-plexus
Requires: slf4j
# Maven upstream uses patched version of SLF4J. They unpack
# slf4j-simple-sources.jar, apply non-upstreamable, Maven-specific
# patch (using a script written in Groovy), compile and package as
# maven-slf4j-provider.jar, together with Maven-specific additions.
Provides: bundled(slf4j) = %{bundled_slf4j_version}
# This package might be installed on a system, since it used to be
# produced by the binary maven repackaging in some repositories.
# This Obsoletes will allow a clean upgrade.
Obsoletes: %{name}-jansi
# If XMvn is part of the same RPM transaction then it should be
# installed first to avoid triggering rhbz#1014355.
OrderWithRequires: xmvn-minimal
%description lib
Core part of Apache Maven that can be used as a library.
%package javadoc
Summary: API documentation for %{name}
Group: Documentation/HTML
BuildArch: noarch
%description javadoc
%{summary}.
%prep
%setup -q -n apache-%{name}-%{version} -a10
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# not really used during build, but a precaution
find -name '*.jar' -not -path '*/test/*' -delete
find -name '*.class' -delete
find -name '*.bat' -delete
sed -i 's:\r::' apache-maven/src/conf/settings.xml
# Downloads dependency licenses from the Internet and aggregates them.
# We already ship the licenses in their respective packages.
rm apache-maven/src/main/appended-resources/META-INF/LICENSE.vm
# Disable plugins which are not useful for us
%pom_remove_plugin -r :animal-sniffer-maven-plugin
%pom_remove_plugin -r :apache-rat-plugin
%pom_remove_plugin -r :maven-site-plugin
%pom_remove_plugin -r :buildnumber-maven-plugin
sed -i "
/buildNumber=/ d
/timestamp=/ d
" `find -name build.properties`
sed -i "s/version=.*/version=%{version}/" `find -name build.properties`
sed -i "s/distributionId=.*/distributionId=apache-maven/" `find -name build.properties`
sed -i "s/distributionShortName=.*/distributionShortName=Maven/" `find -name build.properties`
sed -i "s/distributionName=.*/distributionName=Apache\ Maven/" `find -name build.properties`
%{mvn_package} :apache-maven __noinstall
%pom_remove_dep -r :logback-classic
%pom_xpath_remove pom:parent/pom:relativePath
%{mvn_alias} :maven-resolver-provider :maven-aether-provider
%build
mkdir -p lib
build-jar-repository -s lib \
apache-commons-lang3 \
atinject \
commons-cli \
glassfish-annotation-api \
guava/guava \
guice/google-guice \
jdom2/jdom2 \
maven-resolver/maven-resolver-api \
maven-resolver/maven-resolver-impl \
maven-resolver/maven-resolver-named-locks \
maven-resolver/maven-resolver-spi \
maven-resolver/maven-resolver-util \
maven-shared-utils/maven-shared-utils \
maven-wagon/provider-api \
objectweb-asm/asm-commons \
objectweb-asm/asm \
org.eclipse.sisu.inject \
org.eclipse.sisu.plexus \
plexus-classworlds \
plexus/cli \
plexus-containers/plexus-component-annotations \
plexus/interpolation \
plexus-metadata-generator \
plexus/plexus-cipher \
plexus/plexus-sec-dispatcher \
plexus/utils \
qdox \
slf4j/api \
slf4j/simple \
xbean/xbean-reflect
ln -s $(build-classpath slf4j/slf4j-simple-sources) lib/
%{ant} \
-Dtest.skip=true \
package javadoc
%{mvn_artifact} pom.xml
mkdir -p target/site/apidocs
for i in \
artifact \
model \
plugin-api \
builder-support \
model-builder \
settings \
settings-builder \
repository-metadata \
resolver-provider \
core \
slf4j-provider \
embedder \
compat; do
cp -r %{name}-${i}/target/site/apidocs target/site/apidocs/%{name}-${i}
%{mvn_artifact} %{name}-${i}/pom.xml %{name}-${i}/target/%{name}-${i}-%{version}.jar
done
%install
%mvn_install
%fdupes %{buildroot}%{_javadocdir}
install -d -m 755 %{buildroot}%{homedir}/boot
install -d -m 755 %{buildroot}%{confdir}
install -d -m 755 %{buildroot}%{_datadir}/bash-completion/completions/
cp -a apache-maven/src/{bin,conf,lib} %{buildroot}%{homedir}/
chmod +x %{buildroot}%{homedir}/bin/*
unix2dos %{buildroot}%{homedir}/bin/*.cmd %{buildroot}%{homedir}/bin/*.conf
chmod -x %{buildroot}%{homedir}/bin/*.cmd %{buildroot}%{homedir}/bin/*.conf
# Transitive deps of wagon-http, missing because of unshading
build-jar-repository -p %{buildroot}%{homedir}/lib \
aopalliance \
apache-commons-lang3 \
atinject \
commons-cli \
commons-codec \
glassfish-annotation-api \
guava/guava \
guice/google-guice \
httpcomponents/httpclient \
httpcomponents/httpcore \
jansi/jansi \
maven-resolver/maven-resolver-api \
maven-resolver/maven-resolver-connector-basic \
maven-resolver/maven-resolver-impl \
maven-resolver/maven-resolver-named-locks \
maven-resolver/maven-resolver-spi \
maven-resolver/maven-resolver-transport-file \
maven-resolver/maven-resolver-transport-http \
maven-resolver/maven-resolver-transport-wagon \
maven-resolver/maven-resolver-util \
maven-shared-utils/maven-shared-utils \
maven-wagon/file \
maven-wagon/http \
maven-wagon/http-shared \
maven-wagon/provider-api \
org.eclipse.sisu.inject \
org.eclipse.sisu.plexus \
plexus/plexus-cipher \
plexus/interpolation \
plexus/plexus-sec-dispatcher \
plexus/utils \
plexus-containers/plexus-component-annotations \
slf4j/api \
slf4j/jcl-over-slf4j
cp %{buildroot}%{_javadir}/%{name}/*.jar %{buildroot}%{homedir}/lib/
ln -sf %{_libdir}/jansi/libjansi.so %{buildroot}%{homedir}/lib/jansi-native/
build-jar-repository -p %{buildroot}%{homedir}/boot \
plexus-classworlds
xmvn-subst -R %{buildroot} -s %{buildroot}%{homedir}
install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/bash-completion/completions/mvn%{?maven_version_suffix}
mv %{buildroot}%{homedir}/bin/m2.conf %{buildroot}%{_sysconfdir}/m2%{?maven_version_suffix}.conf
ln -sf %{_sysconfdir}/m2%{?maven_version_suffix}.conf %{buildroot}%{homedir}/bin/m2.conf
mv %{buildroot}%{homedir}/conf/settings.xml %{buildroot}%{confdir}/
ln -sf %{confdir}/settings.xml %{buildroot}%{homedir}/conf/settings.xml
mv %{buildroot}%{homedir}/conf/logging %{buildroot}%{confdir}/
ln -sf %{confdir}/logging %{buildroot}%{homedir}/conf
install -d -m 0755 %{buildroot}%{_bindir}
ln -sf %{homedir}/bin/mvn %{buildroot}%{_bindir}/
ln -sf %{homedir}/bin/mvnDebug %{buildroot}%{_bindir}/
install -d -m 755 %{buildroot}%{_mandir}/man1/
install -p -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/
%files lib -f .mfiles
%doc README.md
%license LICENSE NOTICE
%{homedir}
%dir %{confdir}
%dir %{confdir}/logging
%config(noreplace) %{_sysconfdir}/m2%{?maven_version_suffix}.conf
%config(noreplace) %{confdir}/settings.xml
%config(noreplace) %{confdir}/logging/simplelogger.properties
%files
%{_bindir}/mvn
%{_bindir}/mvnDebug
%{_datadir}/bash-completion
%{_mandir}/man1/mvn.1%{?ext_man}
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%changelog

153
mvn.1 Normal file
View File

@ -0,0 +1,153 @@
.TH MVN "1" "April 2015" "Apache Maven 3.3.1" "User Commands"
.SH NAME
mvn \- software project management and comprehension tool
.SH DESCRIPTION
usage: mvn [options] [<goal(s)>] [<phase(s)>]
usage: mvnDebug [options] [<goal(s)>] [<phase(s)>]
.SH OPTIONS
.TP
\fB\-am\fR,\-\-also\-make
If project list is specified, also
build projects required by the
list
.TP
\fB\-amd\fR,\-\-also\-make\-dependents
If project list is specified, also
build projects that depend on
projects on the list
.TP
\fB\-B\fR,\-\-batch\-mode
Run in non\-interactive (batch)
mode
.TP
\fB\-b\fR,\-\-builder <arg>
The id of the build strategy to
use.
.TP
\fB\-C\fR,\-\-strict\-checksums
Fail the build if checksums don't
match
.TP
\fB\-c\fR,\-\-lax\-checksums
Warn if checksums don't match
.TP
\fB\-cpu\fR,\-\-check\-plugin\-updates
Ineffective, only kept for
backward compatibility
.TP
\fB\-D\fR,\-\-define <arg>
Define a system property
.TP
\fB\-e\fR,\-\-errors
Produce execution error messages
.TP
\fB\-emp\fR,\-\-encrypt\-master\-password <arg>
Encrypt master security password
.TP
\fB\-ep\fR,\-\-encrypt\-password <arg>
Encrypt server password
.TP
\fB\-f\fR,\-\-file <arg>
Force the use of an alternate POM
file (or directory with pom.xml).
.TP
\fB\-fae\fR,\-\-fail\-at\-end
Only fail the build afterwards;
allow all non\-impacted builds to
continue
.TP
\fB\-ff\fR,\-\-fail\-fast
Stop at first failure in
reactorized builds
.TP
\fB\-fn\fR,\-\-fail\-never
NEVER fail the build, regardless
of project result
.TP
\fB\-gs\fR,\-\-global\-settings <arg>
Alternate path for the global
settings file
.TP
\fB\-gt\fR,\-\-global\-toolchains <arg>
Alternate path for the global
toolchains file
.TP
\fB\-h\fR,\-\-help
Display help information
.TP
\fB\-l\fR,\-\-log\-file <arg>
Log file to where all build output
will go.
.TP
\fB\-llr\fR,\-\-legacy\-local\-repository
Use Maven 2 Legacy Local
Repository behaviour, ie no use of
_remote.repositories. Can also be
activated by using
\fB\-Dmaven\fR.legacyLocalRepo=true
.TP
\fB\-N\fR,\-\-non\-recursive
Do not recurse into sub\-projects
.TP
\fB\-npr\fR,\-\-no\-plugin\-registry
Ineffective, only kept for
backward compatibility
.TP
\fB\-npu\fR,\-\-no\-plugin\-updates
Ineffective, only kept for
backward compatibility
.TP
\fB\-nsu\fR,\-\-no\-snapshot\-updates
Suppress SNAPSHOT updates
.TP
\fB\-o\fR,\-\-offline
Work offline
.TP
\fB\-P\fR,\-\-activate\-profiles <arg>
Comma\-delimited list of profiles
to activate
.TP
\fB\-pl\fR,\-\-projects <arg>
Comma\-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
.TP
\fB\-q\fR,\-\-quiet
Quiet output \- only show errors
.TP
\fB\-rf\fR,\-\-resume\-from <arg>
Resume reactor from specified
project
.TP
\fB\-s\fR,\-\-settings <arg>
Alternate path for the user
settings file
.TP
\fB\-T\fR,\-\-threads <arg>
Thread count, for instance 2.0C
where C is core multiplied
.TP
\fB\-t\fR,\-\-toolchains <arg>
Alternate path for the user
toolchains file
.TP
\fB\-U\fR,\-\-update\-snapshots
Forces a check for missing
releases and updated snapshots on
remote repositories
.TP
\fB\-up\fR,\-\-update\-plugins
Ineffective, only kept for
backward compatibility
.TP
\fB\-V\fR,\-\-show\-version
Display version information
WITHOUT stopping build
.TP
\fB\-v\fR,\-\-version
Display version information
.TP
\fB\-X\fR,\-\-debug
Produce execution debug output