target "dependencies"


maven apache
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "commons-codec"
		artifactId = "commons-codec"
		version = "1.22.0"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-compress"
		version = "1.28.0"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-lang3"
		version = "3.20.0"
	}
	dependency {
		groupId = "commons-io"
		artifactId = "commons-io"
		version = "2.22.0"
	}
	dependency {
		groupId = "commons-logging"
		artifactId = "commons-logging"
		version = "1.4.0"
	}
}

maven args4j
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "args4j"
		artifactId = "args4j"
		version = "2.37"
	}
}

maven assertj
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.assertj"
		artifactId = "assertj-core"
		version = "3.27.7"
	}
}

maven bouncycastle
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcpg-jdk18on"
		version = "1.84"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcprov-jdk18on"
		version = "1.84"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcpkix-jdk18on"
		version = "1.84"
	}
	dependency {
		groupId = "org.bouncycastle"
		artifactId = "bcutil-jdk18on"
		version = "1.84"
	}
}

maven bytebuddy
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "net.bytebuddy"
		artifactId = "byte-buddy"
		version = "1.18.10"
	}
	dependency {
		groupId = "net.bytebuddy"
		artifactId = "byte-buddy-agent"
		version = "1.18.10"
	}
}

maven gson
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "com.google.code.gson"
		artifactId = "gson"
		version = "2.14.0"
	}
}

maven hamcrest
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.hamcrest"
		artifactId = "hamcrest"
		version = "3.0"
	}
}

maven javaewah
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "com.googlecode.javaewah"
		artifactId = "JavaEWAH"
		version = "1.2.3"
	}
}

maven jetty
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.eclipse.jetty.ee11"
		artifactId = "jetty-ee11-servlet"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-http"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-io"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-security"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-server"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-session"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util"
		version = "12.1.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util-ajax"
		version = "12.1.10"
	}
	dependency {
		groupId = "jakarta.servlet"
		artifactId = "jakarta.servlet-api"
		version = "6.1.0"
	}
}

maven jna
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna"
		version = "5.19.1"
	}
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna-platform"
		version = "5.19.1"
	}
}

maven mockito
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.mockito"
		artifactId = "mockito-core"
		version = "5.23.0"
	}
}

maven sshd
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.apache.sshd"
		artifactId = "sshd-osgi"
		version = "2.18.0"
	}
	dependency {
		groupId = "org.apache.sshd"
		artifactId = "sshd-sftp"
		version = "2.18.0"
	}
}

maven slf4j
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.slf4j"
		artifactId = "slf4j-api"
		version = "2.0.18"
	}
	dependency {
		groupId = "org.slf4j"
		artifactId = "slf4j-simple"
		version = "2.0.18"
	}
	dependency {
		groupId = "org.slf4j"
		artifactId = "jcl-over-slf4j"
		version = "2.0.18"
	}
}

maven xz
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "org.tukaani"
		artifactId = "xz"
		version = "1.12"
	}
}