Jon*_*ger 6 intellij-idea gradle
我正在使用gradle(v1.9)和IntelliJIdea(v12.1.6).我有一个简单的java项目和一个build.gradle文件.一个依赖关系不在maven central上,所以我把jar放在了lib文件夹中.
对于maven central上的依赖项,gradle使用javadoc和source(位于$ project/.idea/libraries)中正确构建库xml文件.对于本地依赖项(JNativeHook),不附加此类源或javadoc.作为比较,两个xml文件:
使用source和javadoc附件
<component name="libraryTable">
<library name="jackson-core-2.2.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/1a0113da2cab5f4c216b4e5e7c1dbfaa67087e14/jackson-core-2.2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/6021971970a43ae0c22f378cfb5813af869caab/jackson-core-2.2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.2.3/b1c4a6c3c26dfc425efd53c00217868b60d07de9/jackson-core-2.2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
Run Code Online (Sandbox Code Playgroud)
没有源和javadoc附件
<component name="libraryTable">
<library name="JNativeHook-1.1.4">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/JNativeHook-1.1.4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
Run Code Online (Sandbox Code Playgroud)
构建文件如下所示:
apply plugin: 'java'
apply plugin: 'idea'
idea {
module {
downloadJavadoc = true
downloadSources = true
}
}
repositories {
mavenCentral()
flatDir(dirs: 'lib')
}
dependencies {
// Will be fetched from mavenCentral()
compile 'com.fasterxml.jackson.core:jackson-core:2.2.3'
// Will be fetched from the 'lib' directory (see second repository)
compile 'org.jnativehook:JNativeHook:1.1.4'
}
sourceCompatibility = 1.7
version = '0.1'
jar {
manifest {
attributes 'Implementation-Title': 'ScreenShotter',
'Implementation-Version': version,
'Main-Class': 'de.fau.screenshotter.ScreenShotter'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Run Code Online (Sandbox Code Playgroud)
我的项目结构如下所示:

如何告诉gradle创建适当的javadoc和源条目并将它们添加到IntelliJ使用的xml文件中?
如果您有二进制存储库管理器,那么请务必在那里发布模块,这会立即解决问题。idea.module否则,您必须使用idea.module.iml.whenMergedhook 或使用hook来微调idea.module.iml.withXml。这需要一些编码,而且我还没有准备好解决方案。有关 API 详细信息,请参阅Gradle 构建语言参考中的IdeaModule 。
| 归档时间: |
|
| 查看次数: |
2969 次 |
| 最近记录: |