2012-10-04 58 views
2

我讀這樣的:如何使用gradle將工件上傳到網絡驅動器?

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

瞭解如何發佈/上傳我的神器到網絡驅動器/文件共享這是一個要求(我們有一個maven回購和運行,但一些文物必須是轉儲到文件共享)。我已經發現的例子更側重於部署到存儲庫,Maven的,常春藤等

我有我建立的gradle使用1.2以下的build.gradle文件一個簡單的Eclipse Java項目:

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」。

    Could not publish configuration ':archives'. java.io.FileNotFoundException: /internal.newtwork.drive/folder/test/sample-gradle-java-unspecified.jar (No such file or directory)

The destination is correct so does the flatDir repo not support networkdrives?

回答

0

你的URL沒有提及方案(http :, file:等)。我不知道是否可以使用file:URL,或者是否需要使用不同的語法來指定目錄而不是HTTP URL,但是無論哪種方式,都需要正確地爲URI Windows UNC路徑。

查看this question瞭解更多詳情。

0

它看起來像你穿過你的電線。該URL只會是你顯然沒有使用的常青藤資源庫聲明的一部分。文件系統存儲庫將由flatDir塊處理,然後由add project.repositories.fileRepo語句引用。我建議在flatDir dir變量中嘗試完整路徑,否則阻力最小的路徑可能只是將一個簡單的手動文件副本(或其他傳輸)任務放在一起,然後將其添加到主要部署任務中使用。

+0

現在我已經試過你的建議,見上面。但仍然有錯誤。 – u123

1

你應該定義下列參數:

archivesBaseName = 'yourappname' 
group = 'your.app.package' 
version = '1.0.0' 
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" 
    }  

    } 
} 
+0

#archivaurl不過是apache archiva的url,它將從properties文件ex:archivaurl = http:// localhost:8080/archiva/repository/internal中讀取,同樣也適用於身份驗證。 –

相關問題