dependency 'org.sonarsource.kotlin:sonar-kotlin-plugin:2.9.0.1147' | dependency 'org.sonarsource.kotlin:sonar-kotlin-plugin:2.9.0.1147' | ||||
dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.9.0.3429' | dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.9.0.3429' | ||||
dependency 'org.sonarsource.slang:sonar-scala-plugin:1.9.0.3429' | dependency 'org.sonarsource.slang:sonar-scala-plugin:1.9.0.3429' | ||||
dependency 'org.sonarsource.api.plugin:sonar-plugin-api:9.5.0.29' | |||||
dependency 'org.sonarsource.api.plugin:sonar-plugin-api:9.5.0.71' | |||||
dependency 'org.sonarsource.xml:sonar-xml-plugin:2.5.0.3376' | dependency 'org.sonarsource.xml:sonar-xml-plugin:2.5.0.3376' | ||||
dependency 'org.sonarsource.iac:sonar-iac-plugin:1.7.0.2012' | dependency 'org.sonarsource.iac:sonar-iac-plugin:1.7.0.2012' | ||||
dependency 'org.sonarsource.text:sonar-text-plugin:1.0.0.120' | dependency 'org.sonarsource.text:sonar-text-plugin:1.0.0.120' |
import static java.lang.String.format; | import static java.lang.String.format; | ||||
public class SonarQubeVersionHelper { | public class SonarQubeVersionHelper { | ||||
private static final String SONARQUBE_VERSION_PATH = "/sonarqube-version.txt"; | |||||
private static final String SONARQUBE_VERSION_PATH = "/sq-version.txt"; | |||||
private static String sonarqubeVersion; | private static String sonarqubeVersion; | ||||
${buildVersion} |
testCompile 'org.mockito:mockito-core' | testCompile 'org.mockito:mockito-core' | ||||
} | } | ||||
import org.apache.tools.ant.filters.ReplaceTokens | |||||
processResources { | |||||
filter ReplaceTokens, tokens: [ | |||||
'project.version': project.version | |||||
] | |||||
} | |||||
artifactoryPublish.skip = false | artifactoryPublish.skip = false | ||||
publishing { | publishing { |
*/ | */ | ||||
public class MetadataLoader { | public class MetadataLoader { | ||||
private static final String VERSION_FILE_PATH = "/sonar-api-version.txt"; | |||||
private static final String SQ_VERSION_FILE_PATH = "/sq-version.txt"; | |||||
private static final String EDITION_FILE_PATH = "/sonar-edition.txt"; | private static final String EDITION_FILE_PATH = "/sonar-edition.txt"; | ||||
private MetadataLoader() { | private MetadataLoader() { | ||||
} | } | ||||
public static Version loadVersion(System2 system) { | public static Version loadVersion(System2 system) { | ||||
URL url = system.getResource(VERSION_FILE_PATH); | |||||
URL url = system.getResource(SQ_VERSION_FILE_PATH); | |||||
try (Scanner scanner = new Scanner(url.openStream(), StandardCharsets.UTF_8.name())) { | try (Scanner scanner = new Scanner(url.openStream(), StandardCharsets.UTF_8.name())) { | ||||
String versionInFile = scanner.nextLine(); | String versionInFile = scanner.nextLine(); | ||||
return Version.parse(versionInFile); | return Version.parse(versionInFile); | ||||
} catch (IOException e) { | } catch (IOException e) { | ||||
throw new IllegalStateException("Can not load " + VERSION_FILE_PATH + " from classpath ", e); | |||||
throw new IllegalStateException("Can not load " + SQ_VERSION_FILE_PATH + " from classpath ", e); | |||||
} | } | ||||
} | } | ||||
@project.version@ |
assertThatThrownBy(() -> MetadataLoader.loadVersion(system)) | assertThatThrownBy(() -> MetadataLoader.loadVersion(system)) | ||||
.isInstanceOf(IllegalStateException.class) | .isInstanceOf(IllegalStateException.class) | ||||
.hasMessageContaining("Can not load /sonar-api-version.txt from classpath"); | |||||
.hasMessageContaining("Can not load /sq-version.txt from classpath"); | |||||
} | } | ||||
} | } |