Как загрузить артефакт на сетевой диск с помощью 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 (нет такого файла или каталога)
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
переменная, в противном случае путь наименьшего сопротивления может просто состоять в том, чтобы собрать простую ручную задачу копирования файла (или другой передачи), которая затем добавляется к основной задаче развертывания, которую вы используете.