Files
SCM-Manager/scm-core/build.gradle
2024-09-24 09:42:07 +02:00

136 lines
3.5 KiB
Groovy

/*
* Copyright (c) 2020 - present Cloudogu GmbH
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
plugins {
id 'java-library'
id 'org.scm-manager.java'
id 'org.scm-manager.build-info'
}
// TODO
// gradle has xerces on it classpath, which breaks our annotation processor
// so we force jdk build in for now
// @see https://stackoverflow.com/questions/53299280/java-and-xerces-cant-find-property-xmlconstants-access-external-dtd
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
dependencies {
api platform(project(':'))
// scm annotations
api project(':scm-annotations')
annotationProcessor project(':scm-annotation-processor')
// lombok
compileOnly libraries.lombok
testCompileOnly libraries.lombok
annotationProcessor libraries.lombok
testAnnotationProcessor libraries.lombok
// jakarta
api libraries.jakartaAnnotationApi
// servlet api
implementation libraries.servletApi
// logging
api libraries.slf4jApi
api libraries.slf4jJcl // is api here required?
testImplementation libraries.logback
// injection
api libraries.guice
api libraries.guiceServlet
api libraries.guiceThrowingproviders
api libraries.guiceAssistedinject
// rest api
api libraries.jaxRs
testImplementation libraries.resteasyCore
// cli
api libraries.picocli
// json
api libraries.jacksonCore
api libraries.jacksonAnnotations
api libraries.jacksonDatabind
api libraries.jacksonDatatypeJdk8
api libraries.jacksonDatatypeJsr310
// hypermedia
api libraries.edison
// dto mapping
api libraries.mapstruct
annotationProcessor libraries.mapstructProcessor
// events
api libraries.legman
// xml binding
api libraries.jaxbApi
api libraries.jaxbRuntime // should this be an part of api configuration?
// validation
api libraries.validator
testImplementation libraries.elApi
testImplementation libraries.elRuntime
// utils
api libraries.guava
api libraries.commonsLang
// security
api libraries.shiroCore
api libraries.ssp
annotationProcessor libraries.sspProcessor
testImplementation libraries.shiroUnit
// compression
implementation libraries.commonsCompress
// metrics
api libraries.micrometerCore
// tests
testImplementation libraries.junitJupiterApi
testImplementation libraries.junitJupiterParams
testRuntimeOnly libraries.junitJupiterEngine
testImplementation libraries.junitPioneer
// shiro
testImplementation libraries.shiroExtension
// junit 4 support
testRuntimeOnly libraries.junitVintageEngine
testImplementation libraries.junit
// assertions
testImplementation libraries.hamcrestCore
testImplementation libraries.hamcrestLibrary
testImplementation libraries.assertj
// mocking
testImplementation libraries.mockitoCore
testImplementation libraries.mockitoJunitJupiter
}
jar {
from project.layout.buildDirectory.dir('info')
dependsOn 'build-info'
}