You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2023/01/24 09:50:46 UTC
[maven-mvnd] branch master updated: Attempt at moving mvn as first class citizen in mvnd distribution, #392 (#769)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-mvnd.git
The following commit(s) were added to refs/heads/master by this push:
new 4f90d558 Attempt at moving mvn as first class citizen in mvnd distribution, #392 (#769)
4f90d558 is described below
commit 4f90d558b27a9abc64112fb6dae14acee216c938
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Jan 24 10:50:40 2023 +0100
Attempt at moving mvn as first class citizen in mvnd distribution, #392 (#769)
---
.../org/mvndaemon/mvnd/client/DaemonConnector.java | 10 +--
.../mvndaemon/mvnd/client/DaemonParameters.java | 9 ++-
.../org/mvndaemon/mvnd/common/MavenDaemon.java | 4 +-
dist/src/main/distro/{mvn => }/bin/mvn | 2 +-
dist/src/main/distro/{mvn => }/bin/mvn.cmd | 2 +-
.../main/distro/{mvn/bin/m2.conf => bin/mvn.conf} | 0
dist/src/main/distro/{mvn => }/bin/mvnDebug | 0
dist/src/main/distro/{mvn => }/bin/mvnDebug.cmd | 0
dist/src/main/distro/bin/mvnd.cmd | 4 +-
dist/src/main/distro/bin/{m2.conf => mvnd.conf} | 5 +-
dist/src/main/distro/bin/mvnd.sh | 4 +-
.../distro/conf/{ => logging}/logback-client.xml | 0
.../conf/{logback.xml => logging/logback-mvnd.xml} | 0
.../main/distro/{mvn => }/conf/logging/logback.xml | 0
dist/src/main/provisio/maven-distro.xml | 88 +++++++++-------------
.../test/java/org/mvndaemon/mvnd/it/DistroIT.java | 56 +++++++-------
.../org/mvndaemon/mvnd/it/MavenConfNativeIT.java | 2 +-
pom.xml | 5 ++
18 files changed, 88 insertions(+), 103 deletions(-)
diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
index b9dfb7e1..53cbacc4 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
@@ -339,7 +339,7 @@ public class DaemonConnector {
final Path mvndHome = parameters.mvndHome();
final Path workingDir = parameters.userDir();
String command = "";
- try (DirectoryStream<Path> jarPaths = Files.newDirectoryStream(mvndHome.resolve("mvn/lib/ext"))) {
+ try (DirectoryStream<Path> jarPaths = Files.newDirectoryStream(mvndHome.resolve("lib"))) {
List<String> args = new ArrayList<>();
// executable
final String java = Os.current().isUnixLike() ? "bin/java" : "bin\\java.exe";
@@ -358,10 +358,10 @@ public class DaemonConnector {
}
}
if (mvndCommonPath == null) {
- throw new IllegalStateException("Could not find mvnd-common jar in mvn/lib/ext/");
+ throw new IllegalStateException("Could not find mvnd-common jar in lib/");
}
if (mvndAgentPath == null) {
- throw new IllegalStateException("Could not find mvnd-agent jar in mvn/lib/ext/");
+ throw new IllegalStateException("Could not find mvnd-agent jar in lib/");
}
args.add("-classpath");
args.add(mvndCommonPath + File.pathSeparator + mvndAgentPath);
@@ -419,8 +419,8 @@ public class DaemonConnector {
}
Environment.MVND_HOME.addSystemProperty(args, mvndHome.toString());
- args.add("-Dmaven.home=" + mvndHome.resolve("mvn"));
- args.add("-Dmaven.conf=" + mvndHome.resolve("mvn/conf"));
+ args.add("-Dmaven.home=" + mvndHome);
+ args.add("-Dmaven.conf=" + mvndHome.resolve("conf"));
Environment.MVND_JAVA_HOME.addSystemProperty(
args, parameters.javaHome().toString());
diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
index e6c6a4ec..b416d29b 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java
@@ -120,10 +120,10 @@ public class DaemonParameters {
private String mvndHomeFromExecutable() {
Optional<String> cmd = ProcessHandle.current().info().command();
if (Environment.isNative() && cmd.isPresent()) {
- final Path mvndH = Paths.get(cmd.get()).getParent().getParent();
+ final Path mvndH = Paths.get(cmd.get()).getParent();
if (mvndH != null) {
- final Path mvndDaemonLib = mvndH.resolve("mvn/lib/ext/mvnd-daemon-"
- + BuildProperties.getInstance().getVersion() + ".jar");
+ final Path mvndDaemonLib = mvndH.resolve(
+ "lib/mvnd-daemon-" + BuildProperties.getInstance().getVersion() + ".jar");
if (Files.exists(mvndDaemonLib)) {
return mvndH.toString();
}
@@ -238,7 +238,8 @@ public class DaemonParameters {
public Path logbackConfigurationPath() {
return property(Environment.MVND_LOGBACK)
- .orDefault(() -> mvndHome().resolve("conf/logback.xml").toString())
+ .orDefault(() ->
+ mvndHome().resolve("conf/logging/logback-mvnd.xml").toString())
.orFail()
.asPath();
}
diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/MavenDaemon.java b/common/src/main/java/org/mvndaemon/mvnd/common/MavenDaemon.java
index cf4bb133..0ebbfee5 100644
--- a/common/src/main/java/org/mvndaemon/mvnd/common/MavenDaemon.java
+++ b/common/src/main/java/org/mvndaemon/mvnd/common/MavenDaemon.java
@@ -31,7 +31,7 @@ public class MavenDaemon {
final Path mvndHome = Environment.MVND_HOME.asPath();
URL[] classpath = Stream.concat(
/* jars */
- Stream.of("mvn/lib/ext", "mvn/lib", "mvn/boot")
+ Stream.of("lib/ext", "lib", "boot")
.map(mvndHome::resolve)
.flatMap((Path p) -> {
try {
@@ -46,7 +46,7 @@ public class MavenDaemon {
})
.filter(Files::isRegularFile),
/* resources */
- Stream.of(mvndHome.resolve("mvn/conf"), mvndHome.resolve("mvn/conf/logging")))
+ Stream.of(mvndHome.resolve("conf"), mvndHome.resolve("conf/logging")))
.map(Path::normalize)
.map(Path::toUri)
.map(uri -> {
diff --git a/dist/src/main/distro/mvn/bin/mvn b/dist/src/main/distro/bin/mvn
similarity index 99%
rename from dist/src/main/distro/mvn/bin/mvn
rename to dist/src/main/distro/bin/mvn
index 97363a1e..50395f00 100755
--- a/dist/src/main/distro/mvn/bin/mvn
+++ b/dist/src/main/distro/bin/mvn
@@ -192,7 +192,7 @@ exec "$JAVACMD" \
$MAVEN_DEBUG_OPTS \
-classpath "${CLASSWORLDS_JAR}" \
"-Dlogback.configurationFile=${MAVEN_HOME}/conf/logging/logback.xml" \
- "-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf" \
+ "-Dclassworlds.conf=${MAVEN_HOME}/bin/mvn.conf" \
"-Dmaven.home=${MAVEN_HOME}" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
diff --git a/dist/src/main/distro/mvn/bin/mvn.cmd b/dist/src/main/distro/bin/mvn.cmd
similarity index 95%
rename from dist/src/main/distro/mvn/bin/mvn.cmd
rename to dist/src/main/distro/bin/mvn.cmd
index 17cb1cb7..1a75f297 100644
--- a/dist/src/main/distro/mvn/bin/mvn.cmd
+++ b/dist/src/main/distro/bin/mvn.cmd
@@ -173,7 +173,7 @@ set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
%MAVEN_DEBUG_OPTS% ^
-classpath %CLASSWORLDS_JAR% ^
"-Dlogback.configurationFile=%MAVEN_HOME%\conf\logging\logback.xml" ^
- "-Dclassworlds.conf=%MAVEN_HOME%\bin\m2.conf" ^
+ "-Dclassworlds.conf=%MAVEN_HOME%\bin\mvn.conf" ^
"-Dmaven.home=%MAVEN_HOME%" ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
diff --git a/dist/src/main/distro/mvn/bin/m2.conf b/dist/src/main/distro/bin/mvn.conf
similarity index 100%
rename from dist/src/main/distro/mvn/bin/m2.conf
rename to dist/src/main/distro/bin/mvn.conf
diff --git a/dist/src/main/distro/mvn/bin/mvnDebug b/dist/src/main/distro/bin/mvnDebug
similarity index 100%
rename from dist/src/main/distro/mvn/bin/mvnDebug
rename to dist/src/main/distro/bin/mvnDebug
diff --git a/dist/src/main/distro/mvn/bin/mvnDebug.cmd b/dist/src/main/distro/bin/mvnDebug.cmd
similarity index 100%
rename from dist/src/main/distro/mvn/bin/mvnDebug.cmd
rename to dist/src/main/distro/bin/mvnDebug.cmd
diff --git a/dist/src/main/distro/bin/mvnd.cmd b/dist/src/main/distro/bin/mvnd.cmd
index 62d29d49..a14caedf 100644
--- a/dist/src/main/distro/bin/mvnd.cmd
+++ b/dist/src/main/distro/bin/mvnd.cmd
@@ -161,7 +161,7 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s
:endReadAdditionalConfig
-for %%i in ("%MVND_HOME%"\mvn\boot\plexus-classworlds-*) do set CLASSWORLDS_JAR="%%i"
+for %%i in ("%MVND_HOME%"\boot\plexus-classworlds-*) do set CLASSWORLDS_JAR="%%i"
set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
"%JAVACMD%" ^
@@ -169,7 +169,7 @@ set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %CLASSWORLDS_JAR% ^
- "-Dclassworlds.conf=%MVND_HOME%\bin\m2.conf"
+ "-Dclassworlds.conf=%MVND_HOME%\bin\mvnd.conf"
"-Dmvnd.home=%MVND_HOME%" ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
diff --git a/dist/src/main/distro/bin/m2.conf b/dist/src/main/distro/bin/mvnd.conf
similarity index 88%
rename from dist/src/main/distro/bin/m2.conf
rename to dist/src/main/distro/bin/mvnd.conf
index 1f7aa818..3df58b2b 100644
--- a/dist/src/main/distro/bin/m2.conf
+++ b/dist/src/main/distro/bin/mvnd.conf
@@ -16,9 +16,10 @@
# under the License.
main is org.mvndaemon.mvnd.client.DefaultClient from plexus.core
-set maven.home default ${mvnd.home}/mvn
+set maven.home default ${mvnd.home}
set maven.conf default ${maven.home}/conf
-set logback.configurationFile default ${mvnd.home}/conf/logback-client.xml
+
+set logback.configurationFile default ${maven.conf}/logging/logback-client.xml
set logback.configurationFile.fallback default ${maven.conf}/logging/logback.xml
[plexus.core]
diff --git a/dist/src/main/distro/bin/mvnd.sh b/dist/src/main/distro/bin/mvnd.sh
index df821112..029ac1a5 100755
--- a/dist/src/main/distro/bin/mvnd.sh
+++ b/dist/src/main/distro/bin/mvnd.sh
@@ -101,7 +101,7 @@ if [ ! -x "$JAVACMD" ] ; then
exit 1
fi
-CLASSWORLDS_JAR=`echo "${MVND_HOME}"/mvn/boot/plexus-classworlds-*.jar`
+CLASSWORLDS_JAR=`echo "${MVND_HOME}"/boot/plexus-classworlds-*.jar`
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# For Cygwin, switch paths to Windows format before running java
@@ -184,7 +184,7 @@ exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "${CLASSWORLDS_JAR}" \
- "-Dclassworlds.conf=${MVND_HOME}/bin/m2.conf" \
+ "-Dclassworlds.conf=${MVND_HOME}/bin/mvnd.conf" \
"-Dmvnd.home=${MVND_HOME}" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
diff --git a/dist/src/main/distro/conf/logback-client.xml b/dist/src/main/distro/conf/logging/logback-client.xml
similarity index 100%
rename from dist/src/main/distro/conf/logback-client.xml
rename to dist/src/main/distro/conf/logging/logback-client.xml
diff --git a/dist/src/main/distro/conf/logback.xml b/dist/src/main/distro/conf/logging/logback-mvnd.xml
similarity index 100%
rename from dist/src/main/distro/conf/logback.xml
rename to dist/src/main/distro/conf/logging/logback-mvnd.xml
diff --git a/dist/src/main/distro/mvn/conf/logging/logback.xml b/dist/src/main/distro/conf/logging/logback.xml
similarity index 100%
rename from dist/src/main/distro/mvn/conf/logging/logback.xml
rename to dist/src/main/distro/conf/logging/logback.xml
diff --git a/dist/src/main/provisio/maven-distro.xml b/dist/src/main/provisio/maven-distro.xml
index 145e2f88..8f0605d5 100644
--- a/dist/src/main/provisio/maven-distro.xml
+++ b/dist/src/main/provisio/maven-distro.xml
@@ -17,71 +17,53 @@
-->
<assembly>
- <artifactSet to="/mvn">
+ <artifactSet to="/">
<artifact id="org.apache.maven:apache-maven:tar.gz:bin">
<unpack useRoot="false"
- excludes="conf/logging/*,lib/maven-slf4j-provider*,bin/mvn*,lib/jansi-*.jar,lib/jansi-native/*,lib/plexus-utils-3.*"/>
+ excludes="conf/logging/*,lib/maven-slf4j-provider*,lib/plexus-utils-3.*" />
</artifact>
</artifactSet>
- <artifactSet to="/mvn/lib">
- <exclusion id="javax.annotation:javax.annotation-api"/>
- <exclusion id="org.codehaus.plexus:plexus-utils"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-api"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-impl"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-spi"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-util"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-connector-basic"/>
- <artifact id="org.apache.maven.resolver:maven-resolver-transport-wagon"/>
+ <artifactSet to="/lib">
+ <artifact id="ch.qos.logback:logback-classic">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="ch.qos.logback:logback-core">
+ <exclusion id="*:*"/>
+ </artifact>
</artifactSet>
- <artifactSet to="/mvn/lib/ext">
- <exclusion id="org.slf4j:slf4j-api"/>
+ <artifactSet to="/lib">
<artifact id="org.apache.maven.daemon:mvnd-daemon:${project.version}">
- <exclusion id="org.codehaus.plexus:plexus-classworlds"/>
- <exclusion id="org.codehaus.plexus:plexus-utils"/>
- <exclusion id="*:cdi-api"/>
- <exclusion id="*:commons-cli"/>
- <exclusion id="*:commons-io"/>
- <exclusion id="*:commons-lang3"/>
- <exclusion id="*:guava"/>
- <exclusion id="*:guice"/>
- <exclusion id="*:javax.inject"/>
- <exclusion id="*:jcl-over-slf4j"/>
- <exclusion id="*:jul-to-slf4j"/>
- <exclusion id="*:jsr250-api"/>
- <exclusion id="*:log4j-over-slf4j"/>
- <exclusion id="*:maven-artifact"/>
- <exclusion id="*:maven-builder-support"/>
- <exclusion id="*:maven-core"/>
- <exclusion id="*:maven-embedder"/>
- <exclusion id="*:maven-model"/>
- <exclusion id="*:maven-model-builder"/>
- <exclusion id="*:maven-plugin-api"/>
- <exclusion id="*:maven-repository-metadata"/>
- <exclusion id="*:maven-resolver-api"/>
- <exclusion id="*:maven-resolver-impl"/>
- <exclusion id="*:maven-resolver-provider"/>
- <exclusion id="*:maven-resolver-spi"/>
- <exclusion id="*:maven-resolver-util"/>
- <exclusion id="*:maven-settings"/>
- <exclusion id="*:maven-settings-builder"/>
- <exclusion id="*:maven-shared-utils"/>
- <exclusion id="*:org.eclipse.sisu.inject"/>
- <exclusion id="*:org.eclipse.sisu.plexus"/>
- <exclusion id="*:plexus-cipher"/>
- <exclusion id="*:plexus-component-annotations"/>
- <exclusion id="*:plexus-interpolation"/>
- <exclusion id="*:plexus-sec-dispatcher"/>
- <exclusion id="*:plexus-utils"/>
- <exclusion id="*:plexus-container-default"/>
- <exclusion id="*:slf4j-api"/>
+ <exclusion id="*:*"/>
</artifact>
<artifact id="org.apache.maven.daemon:mvnd-client:${project.version}">
<exclusion id="*:*"/>
</artifact>
- <artifact id="org.apache.maven.daemon:mvnd-agent:${project.version}"/>
- <artifact id="org.apache.maven.daemon:mvnd-helper-agent:${project.version}"/>
+ <artifact id="org.apache.maven.daemon:mvnd-common:${project.version}">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.apache.maven.daemon:mvnd-agent:${project.version}">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.apache.maven.daemon:mvnd-helper-agent:${project.version}">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.apache.maven.daemon:mvnd-native:${project.version}">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="ch.qos.logback:logback-classic">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.codehaus.plexus:plexus-interactivity-api">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.jline:jline-terminal">
+ <exclusion id="*:*"/>
+ </artifact>
+ <artifact id="org.jline:jline-terminal-jansi">
+ <exclusion id="*:*"/>
+ </artifact>
</artifactSet>
<fileSet to="/">
diff --git a/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DistroIT.java b/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DistroIT.java
index 1044673d..5691c848 100644
--- a/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DistroIT.java
+++ b/integration-tests/src/test/java/org/mvndaemon/mvnd/it/DistroIT.java
@@ -21,10 +21,8 @@ package org.mvndaemon.mvnd.it;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.ArrayList;
import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -33,6 +31,8 @@ import java.util.stream.Stream;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
public class DistroIT {
/**
@@ -40,20 +40,16 @@ public class DistroIT {
*/
@Test
void noDuplicateJars() {
- final Path mavenHome = Paths.get(System.getProperty("mvnd.home"));
- Set<Avc> mavenLibs =
- streamJars(mavenHome, "mvn/lib", "mvn/boot").collect(Collectors.toCollection(TreeSet::new));
- Assertions.assertFalse(mavenLibs.isEmpty());
- final List<Avc> mvndJars = streamJars(mavenHome, "mvn/lib/ext").collect(Collectors.toList());
- Assertions.assertFalse(mvndJars.isEmpty());
-
- final List<Avc> dups = mvndJars.stream()
- .filter(avc -> mavenLibs.stream().anyMatch(mvnAvc -> mvnAvc.sameArtifactId(avc)))
+ String property = System.getProperty("mvnd.home");
+ assertNotNull(property, "mvnd.home must be defined");
+ final Path mavenHome = Paths.get(property);
+ List<Avc> avcs = listJars(mavenHome);
+ Map<String, List<Avc>> avcsByArtifactId = avcs.stream().collect(Collectors.groupingBy(Avc::getArtifactId));
+ List<List<Avc>> duplicateJars = avcsByArtifactId.values().stream()
+ .filter(list -> list.size() > 1)
.collect(Collectors.toList());
- final String msg = mavenHome.resolve("mvn/lib/ext") + " contains duplicates available in "
- + mavenHome.resolve("mvn/lib") + " or " + mavenHome.resolve("mvn/boot");
- Assertions.assertEquals(new ArrayList<Avc>(), dups, msg);
+ Assertions.assertTrue(duplicateJars.isEmpty(), mavenHome + " contains duplicates jars" + duplicateJars);
}
@Test
@@ -69,21 +65,17 @@ public class DistroIT {
Assertions.assertEquals(classifier, avc.classifier, "classifier in " + jarName);
}
- private static Stream<Avc> streamJars(Path mavenHome, String... dirs) {
- return Stream.of(dirs)
- .map(mavenHome::resolve)
- .flatMap((Path p) -> {
- try {
- return Files.list(p);
- } catch (java.io.IOException e) {
- throw new RuntimeException("Could not list " + p, e);
- }
- })
- .filter(p -> p.getFileName().toString().endsWith(".jar"))
- .filter(Files::isRegularFile)
- .map(Path::getFileName)
- .map(Path::toString)
- .map(Avc::of);
+ private static List<Avc> listJars(Path mavenHome) {
+ try (Stream<Path> stream = Files.walk(mavenHome)) {
+ return stream.filter(p -> p.getFileName().toString().endsWith(".jar"))
+ .filter(Files::isRegularFile)
+ .map(Path::getFileName)
+ .map(Path::toString)
+ .map(Avc::of)
+ .collect(Collectors.toList());
+ } catch (java.io.IOException e) {
+ throw new RuntimeException("Could not list " + mavenHome, e);
+ }
}
static class Avc implements Comparable<Avc> {
@@ -113,6 +105,10 @@ public class DistroIT {
this.jarName = jarName;
}
+ public String getArtifactId() {
+ return artifactId;
+ }
+
@Override
public String toString() {
return jarName;
diff --git a/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfNativeIT.java b/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfNativeIT.java
index f562b233..9e291e60 100644
--- a/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfNativeIT.java
+++ b/integration-tests/src/test/java/org/mvndaemon/mvnd/it/MavenConfNativeIT.java
@@ -52,7 +52,7 @@ public class MavenConfNativeIT {
"-DforceStdout",
"--raw-streams")
.assertSuccess();
- String conf = parameters.mvndHome().resolve("mvn/conf").toString();
+ String conf = parameters.mvndHome().resolve("conf").toString();
assertTrue(
o.getMessages().stream().anyMatch(m -> m.toString().contains(conf)), "Output should contain " + conf);
}
diff --git a/pom.xml b/pom.xml
index 2ddcc0a2..4d6da469 100644
--- a/pom.xml
+++ b/pom.xml
@@ -120,6 +120,11 @@
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>