我正在爲Gradle任務創建基於Eclipse的IDE的項目。這需要生成.project
和.classpath
文件。這部分是絕對沒有問題的,我可以通過apply plugin: 'eclipse'
使用Gradle Eclipse插件,讓我的任務依賴於配置改變的eclipseProject
和eclipseClasspath
。但是另一個要求是,整個項目必須是可移植的(即使是沒有Gradle的環境),所以不可能定義外部依賴關係,因爲類路徑將引用緩存。我用一個主項目定義的依賴關係解決了這個問題:獲取用於Gradle中的依賴關係的JavaDoc jar
// Define configurations
configurations {
libs
}
// Define repositories
repositories {
mavenCentral()
}
// Include dependencies via 'groupID:artifactID:version[:classifier]'
dependencies {
libs 'junit:junit:4.12'
}
這些依賴就會被下載到緩存中,並把它們簡單的複製任務複製到我的項目'lib'
文件夾:
// Copies the dependencies to project 'lib' folder
task copyLibs(type: Copy) {
from configurations.libs
into "$projectDir/$projectName/lib"
}
一子項目現在使用的複製庫的依賴關係,簡單地使用:
dependencies {
compile fileTree(dir: 'lib', include: ['*.jar'])
}
在子項目另外一個任務相對化的路徑,所以我可以移動我的項目並根據需要隨時撥打gradle build
。這是類路徑的外觀:
<classpath>
<classpathentry path="bin" kind="output"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib\hamcrest-core-1.3.jar"/>
<classpathentry kind="lib" path="lib\junit-4.12.jar"/>
</classpath>
現在我想包含javadoc
-jars的依賴關係。使用本地副本之前,我可以簡單地使用this Eclipse plugin feature:
eclipse {
classpath {
downloadJavadoc = true
downloadSources = true
}
}
但現在我的項目使用文件作爲依賴關係,因此Eclipse插件不能只是簡單的要求Javadoc文件了。我如何要求下載javadoc
-jars 而不使用每次都添加第二個依賴關係,:javadoc
分類器後綴?一旦它被下載了,我可以在緩存中查找它自己,也把它添加到.classpath
以預想方式:,
<classpathentry kind="lib" path="lib\junit-4.12.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/path/to/javadoc/junit-4.12-javadoc.jar"/>
</attributes>
</classpathentry>
但在此刻,javadoc
-jars只下載如果)的依賴:javadoc
分類器後綴的定義與常規依賴類似,或者b)不會複製依賴關係,而是直接通過Eclipse插件(具有downloadJavadoc = true
)的項目引用。
對於沒有安裝Gradle的環境,您不能使用Gradle包裝器嗎? –