java - 如何将源附加到可在 eclipse 外部依赖项中使用的 Gradle (Gradle 6.3.) 构建中的 jar
问题描述
问题:我有一个 gradle 项目,我在其中使用“pocdemo.jar”作为 gradle 依赖项。当我尝试浏览方法调用层次结构时,它不显示实际代码,而是显示如下图所示的内容
我想为外部依赖附加源,我尝试通过选择 jar -> properties -> Java Source Attachment 来做到这一点,但这不允许我添加源的位置。现在我想知道有没有一种方法可以在 build.gradle 文件中使用,该文件将在 jar 创建过程中包含源代码。我在我的主项目中用作外部依赖项的项目有以下 gradle 文件。
buildscript {
repositories {
maven {
url = repoUrl
allowInsecureProtocol = true
metadataSources {
mavenPom()
artifact()
}
}
maven {
url = biappsUrl
allowInsecureProtocol = true
metadataSources {
mavenPom()
artifact()
}
}
}
dependencies {
classpath(group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.1.3.RELEASE')
}
}
apply plugin: 'maven-publish'
apply plugin:'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
configurations.all {
exclude group: "commons-logging", module: "commons-logging"
exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
}
configurations {
javadocJar
}
dependencies {
implementation(group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0')
implementation (group: 'org.springframework.retry', name: 'spring-retry')
implementation(group: 'com.google.guava', name: 'guava', version: '27.0.1-jre')
implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-web')
implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-actuator')
implementation group: 'commons-io', name: 'commons-io', version: '2.5'
implementation group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1'
implementation group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.1'
implementation group: 'commons-codec', name: 'commons-codec', version: '1.2'
implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5'
implementation group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.1'
.
. <Some more dependencies>
.
testImplementation(group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.0-beta.5')
testImplementation(group: 'org.mockito', name: 'mockito-core', version: '2.19.0')
testImplementation(group: 'org.powermock', name: 'powermock-module-junit4', version: '2.0.0-beta.5')
}
javadoc {
source = sourceSets.main.allJava
classpath = sourceSets.main.compileClasspath
destinationDir = file("${buildDir}/docs/javadoc")
failOnError = true
}
task javadocJar (type: Jar, dependsOn: javadoc){
from javadoc.destinationDir
archiveFileName = "myapps-pco-demo-doc-${version}.jar"
}
jar {
bootJar.enabled = false
jar.enabled = true
dependsOn 'javadocJar'
archiveFileName = provider {
'pocdemo.jar'
}
enabled = true
manifest{
attributes('Sealed': 'true')
}
}
/* Eclipse config */
eclipse {
classpath {
downloadSources = true
downloadJavadoc = true
}
}
解决方案
推荐阅读
- c - 如何正确使用 LsaLookupSids2?
- design-patterns - [架构][模式] 多服务同步实现
- labview - LabVIEW - 如何缩短 .net Refnum 的路径
- php - imagick php svg 到 jpg 转换缺少图像元素
- bash - bash - 如何在标准输出的匹配行上自动发送 SIGINT
- c# - 从 InTune MDM Xamarin.Android 设备到 SharePoint Online 的身份验证
- php - 使用 xpath 将无序列表 html 标记转换为多维数组
- selenium - 有没有其他方法可以提供门户登录(salesforce 中的默认门户登录 url)url 来打开它,而无需使用 selenium 在代码中进行硬编码
- binding - 如何在 Windows 10 上的 Sublime Text 3 中更改“添加光标”的 sublime 鼠标绑定
- javascript - 使用特殊字体的 HTML 混淆