2016-09-29 65 views
0

我正在開發一個Spring MVC項目(使用Gradle)來生成要集成到不同項目中的模板。模板項目包含很少的HTML文件和一些類來處理屬性。我配置了artifactory-gradle-plugin來生成併發布包含我的HTML文件和類的WAR。一切正常,我的WAR和POM文件現在在我的Artifactory服務器下可用。這裏是我的build.gradle的一部分文件如何將Artifactory WAR添加爲Gradle依賴

war { 
    rootSpec.exclude('**/*.properties') 
    [...] 
    rootSpec.exclude('**/test/**') 
    rootSpec.exclude('**/*.jar') 
} 

artifactory { 
    publish { 
     contextUrl = "myurl" 
     repository { 
      repoKey = 'myrepo' 
      username = "myuser" 
      password = "mypasswd" 
      maven = true 
     } 
     defaults { 
      publications ('mavenJava') 
     } 
    } 
} 
publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.web 
     } 
    } 
}  

不幸的是,當我嘗試這件神器添加爲依賴於一個其他項目,搖籃成功地找到了戰爭,但沒有什麼是集成到項目中。我無法在項目中找到任何HTML,類或戰爭文件。

dependencies { 
    compile(group: 'test.spring', name: 'test-layout', version: '0.0.1', ext: 'war') 
} 

有什麼遺漏或我是完全跟蹤這個?

回答

1

將依賴項添加到war文件是沒有意義的,因爲這是應用程序服務器的打包,而不是其他項目。

我建議你還從原始項目中發佈其他工件,而是將它們作爲依賴項導入。

另一種方法是將戰爭解包到單獨的任務中,但在控制源項目時不需要這樣做。

+0

「我建議你也從你的原始項目中發佈其他工件」我的目標是將類和html文件打包在同一個工件中。你知道這是可能的嗎?首先, – rattek

+0

。爲什麼要添加戰爭文件中的內容以及您將如何使用它?應該使用對正常jar文件的依賴性導入類,而不是war文件。你怎麼知道戰爭不在依賴樹中?你是否檢查過「gradle dependencies」命令? –

+0

我試圖將HTML文件添加到一個神器(如果它是戰爭或Jar,則無論如何)。這些HTML文件和類將在其他項目中可用(作爲佈局的模板)。你知道是否有辦法實現它? – rattek

0

好的,在Gradle論壇上提出同樣的問題後,似乎沒有簡單的方法可以在不丟失所有依賴關係的情況下使用單個工件來實現此目標(特別感謝Lance_Java)。這聽起來像我必須創建一個JAR和ZIP神器(見拉鍊引用如前@Joachim尼爾森後述)

https://discuss.gradle.org/t/how-to-add-an-artifactory-war-as-a-gradle-dependency/19804/4

我最終的解決方案將是下簡單地部署我的模板「 commons「web資源庫,並將我的配置類部署到JAR工件中。

相關問題