【问题标题】:How to upload artifact to network drive using gradle?如何使用 gradle 将工件上传到网络驱动器?
【发布时间】:2012-09-25 12:28:21
【问题描述】:

我正在读这个:

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

了解如何将我的工件发布/上传到网络驱动器/文件共享,这是必需的(我们有一个 maven 存储库已启动并正在运行,但一些工件需要转储到文件共享上)。我发现的示例更侧重于部署到存储库、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 存储库不支持网络驱动器吗?

【问题讨论】:

    标签: upload gradle fileshare


    【解决方案1】:

    您的 URL 未提及方案(http:、file: 等)。我不知道您是否可以使用 file: URL,或者您是否需要使用不同的语法来指定目录而不是 HTTP URL,但无论哪种方式,您都需要正确地形成 URI Windows UNC 路径。

    更多详情请见this question

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我现在已经尝试了你的建议,见上文。但还是报错。
      【解决方案3】:

      您应该定义以下参数:

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

      【讨论】:

        【解决方案4】:

        //试试这个,

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

        【讨论】:

        猜你喜欢
        • 2012-12-30
        • 2012-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-16
        • 2018-11-10
        相关资源
        最近更新 更多