如何使用gradle将工件上传到网络驱动器?

时间:2012-10-04 12:55:00

标签: upload gradle fileshare

我正在读这个:

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

了解如何将我的工件发布/上传到网络驱动器/文件共享这是一项要求(我们已经启动并运行了maven repo但是需要将一些工件转储到文件共享上)。我发现的例子更侧重于部署到存储库,maven,ivy等。

我有一个简单的eclipse java项目,我使用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'的执行失败。

      

    无法发布配置':archives'。   java.io.FileNotFoundException:/ internal.newtwork.drive/folder/test/sample-gradle-java-unspecified.jar(没有这样的文件或目录)

  •   
  目的地是正确的,所以flatDir repo不支持网络驱动吗?

4 个答案:

答案 0 :(得分:1)

您应该定义以下参数:

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

答案 1 :(得分:0)

您的网址未提及方案(http:,file:等)。我不知道你是否可以使用文件:URL,或者你是否需要我们使用不同的语法来指定目录而不是HTTP URL,但不管怎样,你需要正确地形成URI Windows UNC路径。

有关详细信息,请参阅this question

答案 2 :(得分:0)

看起来你正在穿越你的电线。该网址只是您显然没有使用的常春藤存储库声明的一部分。文件系统存储库将由flatDir块处理,然后由add project.repositories.fileRepo语句引用。我建议尝试flatDir dir变量中的完整路径,否则最小阻力的路径可能只是将一个简单的手动文件副本(或其他传输)任务放在一起,然后将其添加到主要部署你正在使用的任务。

答案 3 :(得分:0)

//试试这个,

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"
    }    

    }
}