Как загрузить артефакт на сетевой диск с помощью Gradle?

Я читаю это:

http://www.gradle.org/docs/current/userguide/artifact_management.html

чтобы понять, как публиковать / загружать мой артефакт на сетевой диск / файловый ресурс, что является обязательным требованием (у нас есть репозиторий Maven, но некоторые артефакты должны быть сохранены на файловом ресурсе). Примеры, которые я нашел, больше ориентированы на развертывание в репозитории, maven, ivy и т. Д.

У меня есть простой Java-проект Eclipse, который я строю с использованием Gradle 1.2 со следующим файлом build.gradle:

apply plugin: 'java' 

sourceSets {
  main {
    java {
      srcDir 'src'
    }
  }
  test {
    java {
      srcDir 'test'
    }
  }
}
repositories {
  flatDir {
      name "fileRepo"
      dirs "file://internal.newtwork.drive/folder/test"
  }
}

uploadArchives {
  repositories {
      add project.repositories.fileRepo
  }
}

Где в документации по gradle можно прочитать о том, как скопировать ресурсы на удаленный файловый ресурс?

Я попытался обновить протокол и атрибут dir на основе ответов ниже, но я получаю эту ошибку:

  • Что пошло не так: выполнение задачи не удалось: "uploadArchives".

    Не удалось опубликовать конфигурацию ": архивы". java.io.FileNotFoundException: /internal.newtwork.drive/folder/test/sample-gradle-java-unspecified.jar (нет такого файла или каталога)

Место назначения правильное, поэтому репозиторий flatDir не поддерживает сетевые диски?

4 ответа

Вы должны определить следующие параметры:

archivesBaseName = 'yourappname'
group = 'your.app.package'
version = '1.0.0'

Ваш URL не упоминает схему (http:, file: и т. Д.). Я не знаю, сможете ли вы обойтись без использования file: URL, или вам нужен другой синтаксис для указания каталога, а не HTTP URL, но в любом случае вам нужно будет правильно сформировать URI для путь Windows UNC.

Смотрите этот вопрос для более подробной информации.

//Попробуй это,

apply plugin: 'java'
apply plugin: 'maven'

repositories {
    maven {
        url "$archivaUrl"`enter code here`
    credentials {
            username = "$userName"
            password = "$passWord"
        }
    }
}

// Dependencies
dependencies { 
    // specify the lib files at compile and run time         
    compile fileTree(dir: 'lib', include: ['**/*.jar','*.jar'])
    runtime fileTree(dir: 'lib', include: ['**/*.jar','*.jar'])
}


// source path 
sourceSets {
    main {
        java {
        srcDirs 'src'
        }

    }
}

uploadArchives {
    repositories {
    mavenDeployer {
        repository(url: "$archivaUrl") {
        authentication(userName: "$userName", password: "$passWord")
        }
        pom.version = "1.0-SNAPSHOT"
        pom.artifactId = "fd-common"
        pom.groupId = "com.somename.common"
    }    

    }
}

Похоже, вы пересекаете свои провода. URL будет только частью той декларации хранилища плюща, которую вы явно не используете. Хранилище файловой системы будет обрабатываться блоком flatDir, на который затем ссылается add project.repositories.fileRepo заявление. Я бы предложил попробовать полный путь в flatDir dir переменная, в противном случае путь наименьшего сопротивления может просто состоять в том, чтобы собрать простую ручную задачу копирования файла (или другой передачи), которая затем добавляется к основной задаче развертывания, которую вы используете.

Другие вопросы по тегам