/********************************************************************************
 * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 ********************************************************************************/


description = 'MDF Sorter'
group = 'org.eclipse.mdm'
version = '1.0.5'

apply plugin: 'java'
apply plugin: 'eclipse'

repositories { mavenCentral() }

dependencies { // testing
	testCompile 'junit:junit:4.12' }

tasks.withType(JavaCompile) {
	sourceCompatibility = '1.7'
	targetCompatibility = '1.7'
}

jar {
	metaInf { from 'NOTICE.txt' }
	metaInf { from 'LICENSE.txt' }
}