Ctrl K
ComunidadGuías…

scm-core/build.gradle

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
/*
 * 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 libs.lombok
  testCompileOnly libs.lombok
  annotationProcessor libs.lombok
  testAnnotationProcessor libs.lombok

  // jakarta
  api libs.jakartaAnnotationApi

  // servlet api
  implementation libs.servletApi

  // logging
  api libs.slf4jApi
  api libs.slf4jJcl // is api here required?
  testImplementation libs.logback

  // injection
  api libs.guice
  api libs.guiceServlet
  api libs.guiceThrowingproviders
  api libs.guiceAssistedinject

  // rest api
  api libs.jaxRs
  testImplementation libs.resteasyCore

  // cli
  api libs.picocli

  // json
  api(libs.jacksonCore) {
    version { strictly libs.versions.jackson.get() }
  }
  api(libs.jacksonAnnotations) {
    version { strictly libs.versions.jacksonAnnotations.get() }
  }
  api(libs.jacksonDatabind) {
    version { strictly libs.versions.jackson.get() }
  }
  api libs.jacksonDatatypeJdk8
  api libs.jacksonDatatypeJsr310

  // hypermedia
  api libs.edison
  api libs.damnhandy

  // dto mapping
  api libs.mapstruct
  annotationProcessor libs.mapstructProcessor

  // events
  api libs.legman

  // xml binding
  api libs.jaxbApi
  api libs.jaxbRuntime // should this be an part of api configuration?

  // validation
  api libs.validator
  testImplementation libs.elApi
  testImplementation libs.elRuntime

  // utils
  api libs.guava
  api libs.commonsLang

  // security
  api variantOf(libs.shiroCore) { classifier('jakarta') }
  api libs.ssp
  annotationProcessor libs.sspProcessor
  testImplementation libs.shiroUnit

  // compression
  implementation libs.commonsCompress

  // metrics
  api libs.micrometerCore

  // tests
  testImplementation libs.junitJupiterApi
  testImplementation libs.junitJupiterParams
  testRuntimeOnly libs.junitJupiterEngine
  testImplementation libs.junitPioneer

  // shiro
  testImplementation libs.shiroExtension

  // junit 4 support
  testRuntimeOnly libs.junitVintageEngine
  testImplementation libs.junit

  // assertions
  testImplementation libs.hamcrestCore
  testImplementation libs.hamcrestLibrary
  testImplementation libs.assertj

  // mocking
  testImplementation libs.mockitoCore
  testImplementation libs.mockitoJunitJupiter
}

jar {
  from project.layout.buildDirectory.dir('info')
  dependsOn 'build-info'
}