target "dependencies"


maven apache
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "commons-codec"
		artifactId = "commons-codec"
		version = "1.21.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.21.0"
	}
	dependency {
		groupId = "commons-logging"
		artifactId = "commons-logging"
		version = "1.3.6"
	}
}

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.8"
	}
	dependency {
		groupId = "net.bytebuddy"
		artifactId = "byte-buddy-agent"
		version = "1.18.8"
	}
}

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

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.ee8"
		artifactId = "jetty-ee8-servlet"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty.ee8"
		artifactId = "jetty-ee8-nested"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty.ee8"
		artifactId = "jetty-ee8-security"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-http"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-io"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-security"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-server"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-session"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util"
		version = "12.1.8"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util-ajax"
		version = "12.1.8"
	}
	dependency {
		groupId = "javax.servlet"
		artifactId = "javax.servlet-api"
		version = "4.0.1"
	}
}

maven jna
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna"
		version = "5.18.1"
	}
	dependency {
		groupId = "net.java.dev.jna"
		artifactId = "jna-platform"
		version = "5.18.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.17.1"
	}
	dependency {
		groupId = "org.apache.sshd"
		artifactId = "sshd-sftp"
		version = "2.17.1"
	}
}

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

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