target "dependencies"


maven apache
	scope = compile
	dependencyDepth = none
	missingManifest = error
	includeSources
{
	dependency {
		groupId = "commons-codec"
		artifactId = "commons-codec"
		version = "1.17.0"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-compress"
		version = "1.26.2"
	}
	dependency {
		groupId = "org.apache.commons"
		artifactId = "commons-lang3"
		version = "3.14.0"
	}
	dependency {
		groupId = "commons-io"
		artifactId = "commons-io"
		version = "2.16.1"
	}
	dependency {
		groupId = "commons-logging"
		artifactId = "commons-logging"
		version = "1.3.2"
	}
}

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.26.0"
	}
}

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

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

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

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

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.ee10"
		artifactId = "jetty-ee10-servlet"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-http"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-io"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-security"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-server"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-session"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util"
		version = "12.0.10"
	}
	dependency {
		groupId = "org.eclipse.jetty"
		artifactId = "jetty-util-ajax"
		version = "12.0.10"
	}
	dependency {
		groupId = "jakarta.servlet"
		artifactId = "jakarta.servlet-api"
		version = "6.0.0"
	}
}

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

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

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

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

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