У нас есть большое количество устаревшего кода кобола, который строится (в качестве сборки градл, выводя банки, содержащие DLL, бывшие и другие артефакты) при различной инфраструктуре для остальной части нашего применения Java. Чтобы снять нагрузку с этой инфраструктуры, я хочу, чтобы, если в этом коде не было никаких изменений, пропустить сборку, загрузив последние банки из Nexus и переиздать их с новой версией. задачи. Вот код, который я написал для этого, с удаленной информацией о конкретной компании и нерелевантной информации: < /p>
Код: Выделить всё
task jcbServer(type: Jar) {
if(shouldBuild == 'false')
{
outputs.file(downloadJar('pathToJarOnNexus', 'nameOfArtifactOnNexus', 'latestPublishedVersionOnNexus'))
}
else
{
//run the build - ommitted for brevity as this is existing code I don't want to touch
}
}
task conversions(type: Jar) {
if (shouldBuild == 'false')
{
outputs.file(downloadJar('pathToJarOnNexus', 'nameOfArtifactOnNexus', 'latestPublishedVersionOnNexus'))
}
else
{
//run the build - ommitted for brevity as this is existing code I don't want to touch
}
}
def downloadJar(def groupPath, def artifactName, def versionToDownload) {
def fullVersionedName = "${artifactName}-${versionToDownload}"
def serviceJar = new File("build/${fullVersionedName}.jar")
def sourceUrl = project.buildConfiguration.qaUrl
def baseUrlForArtifacts = "${sourceUrl}/${groupPath}/${artifactName}/${versionToDownload}/${fullVersionedName}"
def downloadedFile = doDownload(serviceJar, baseUrlForArtifacts)
return downloadedFile
}
def doDownload(def downloadFile, def baseUrlForArtifacts) {
if (!downloadFile.exists()) {
downloadFile.parentFile.mkdirs()
new URL("${baseUrlForArtifacts}.jar")
.withInputStream { i -> downloadFile.withOutputStream { it
Однако, когда я запускаю это, я получаю nosuchfileexception при попытке создать zipfile. При ближайшем рассмотрении я вижу путь загруженного файла, который я скачал C: \ users \ sbrown.gradle \ daemon \ 7.6.4 \ build, который не был на самом деле загружен. Он был загружен в папку сборки моего локального проекта, в C: \ Projects \ Git. В файле есть этот путь как до, так и после загрузки, и все же не загружается на этот путь. Опубликовано, какой лучший способ переместить файлы из банки, которую я загрузил в него? Могу ли я удалить эту банку с выходов задачи и заменить ее на свой собственный загруженный?>
Подробнее здесь: [url]https://stackoverflow.com/questions/79761089/how-to-set-a-local-file-to-be-the-output-of-a-gradle-task[/url]