我正在转换到使用IntelliJ(2019.1版)。所使用的多项目目录结构对于每个项目都有标准的< code>src/main/java和< code>src/test/java,但另外还有一些非标准的目录结构,例如:< code > src/test support/Java 。
Gradlew(使用IntelliJ中打包的内部/推荐gradlew)用于导入项目。Gradle构建文件包括:
apply plugin: 'idea'
apply plugin: 'java'
编辑以提高清晰度
每个项目都很好。项目间引用适用于标准目录。然而,当我在项目B中,但需要从项目A访问< code>src/generated/java或< code > src/test support/Java 时,这些不会被导入(从gradle命令行编译良好的< code>import语句在IntelliJ中显示为无法解析)。要使这些生效,需要进行配置更改或其他什么吗?
目前,我有:
subprojects {
idea {
module {
testSourceDirs += project.sourceSets.generated.java.srcDirs
testSourceDirs += project.sourceSets.testsupport.java.srcDirs
}
}
}
您需要帮助Gradle,为您的项目定义的自定义源创建一个源集。因此,从您的问题中,类似于:
(使用Kotlin DSL)
allprojects {
apply {
plugin("idea")
plugin("java-library")
}
repositories {
mavenCentral()
}
configure<SourceSetContainer> {
create("generated") {
compileClasspath += project.the<SourceSetContainer>()["main"].output
runtimeClasspath += project.the<SourceSetContainer>()["main"].output
}
create("testsupport") {
compileClasspath += project.the<SourceSetContainer>()["main"].output
runtimeClasspath += project.the<SourceSetContainer>()["main"].output
}
}
val api by configurations
val testImplementation by configurations
val testRuntimeOnly by configurations
dependencies {
api(platform("org.junit:junit-bom:5.5.1"))
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
val test by tasks.getting(Test::class) {
useJUnitPlatform()
}
}
以上将给你:
所以现在您想在Project B
中使用Project A
,因此Project B
的Gradle文件将包含对Project A
的依赖:
dependencies {
implementation(":projectA")
}
这应该有望让你开始。请记住,上面给出的例子使用了Kotlin DSL,您应该能够将其转换回Groovy。
参考文献:
是否有办法将GradleJava项目导入IntelliJ 2017.2. x并应用一些设置,例如 代码样式 vcs设置 从Gradle在项目层面? 我注意到例如Grails框架使用了idea-gradle-plugin,但这只能与Gradle任务结合使用。 我不想使用Gradle任务生成IntelliJ项目文件。每当我导入文件。 这可能吗?
我是Java EE的初学者,我在参考资料中读到Java EE的标准目录结构是这样的: 但当我在intellij idea中创建一个新项目时,目录结构是这样的: 现在我因为一些原因感到困惑。
我有一个在Swagger上具有编译依赖关系的项目,它带来了jackson databind v2.4.5,还有一个在库上具有testCompile依赖关系的项目,该库使用了AWS SDK,它带来了jackson databind v2.6.6。 从gradle运行测试时,一切正常,正确更新的jackson依赖项v2.6.6位于类路径上: intellij依存关系包含两个版本: 然而,当从Intel
问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名
问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这
我正在用IntelliJ开发一个Gradle项目,有些包IntelliJ无法识别。当我进入项目结构时- 有问题的类是红色的,当鼠标悬停在它们上面时,我收到错误,如“无法解析符号'somepackagename'”或“无法解析符号'SomeClassName'”。 然而,gradle项目从命令行编译就很好。 我尝试了我能找到的所有现有建议,但到目前为止都没有帮助。首先,我已经尝试了: 删除 .ide