2014-08-28 47 views
0

時產生額外的罐子我有一個依賴於我的gradle這個構建腳本:建設戰

apply plugin 'war' 

dependencies { 
    compile 'com.github.jsimone:webapp-runner:7.0.22' 
} 
製造戰爭時

,有沒有辦法一個任務createWebappRunnerJar可以創建自定的遠程來源罐子?

我在看http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.bundling.Jar.html,但我不認爲它是用於遠程源。

webapp-runner內置於戰爭中,也許有辦法以某種方式將它從戰爭中複製出來,如果它不能從遠程源構建的話?

在行家以下不相同:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.3</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>com.github.jsimone</groupId> 
         <artifactId>webapp-runner</artifactId> 
         <version>7.0.22</version> 
         <destFileName>webapp-runner.jar</destFileName> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

也許我可以只爲罐子創建一個單獨的生成腳本,然後從我的主要的build.gradle – Kirill 2014-08-28 13:01:04

回答

1

你最好的選擇是創建一個單獨的配置只爲你打算,包括遠程源,然後創建一個副本任務的依賴關係將複製配置到您選擇的位置。

configurations { 
    remoteSources { 
     transitive false 
    } 
} 

dependencies { 
    remoteSources 'com.github.jsimone:webapp-runner:7.0.22' 
} 

task copyRemoteSources(type: Copy) { 
    from configurations.remoteSources 
    into "${project.buildDir}/remoteSources" 
} 
+0

感謝馬克運行腳本,今天早上我跑了一個快速測試,看起來像這正是我需要的。我將在今晚晚些時候將這個嬰兒帶出考特斯後儘快接受你的答案。謝謝! – Kirill 2014-08-29 10:32:14