我正在为构建过程使用gradle
构建,并且需要eclipse用于我们的开发环境。 Gradle期望hibernate.cfg
文件夹中的文件夹.hbm
中的main/resources
和src
个文件。但是eclipse希望它直接位于src
文件夹中。
Gradle
- src
- main
- resources
hibernate.cfg
package/path/.hbm files
Eclipse
- src
hiberante.cfg
package/path/.hbm files
为了让它在eclipse上工作,我修改了.cfg文件,以便与前缀的文件夹进行映射。但是当我进行gradle构建时,下面的hack失败了,我得到了一个&org.hibernate.boot.MappingNotFoundException:找不到映射(RESOURCE):main / resources / com / mnox / database / hibernate / pojos / v2 /Booking.hbm.xml:`
<mapping resource="main/resources/com/mnox/database/
编辑1
我尝试了以下内容,没有为gradle工作。 为了解决我在下面做的问题
src/main/resources/package/path
移至src/package/path
。 .cfg
src/main/resources
个文件
.cfg
文件中,我确保路径为package/path/Booking.hbm.xml
Gradle
和Eclipse
现在都有效。
编辑2
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.21'
testCompile 'junit:junit:4.12'
//compile files('src/com/mnox/database/hibernate/pojos/v2')
}
jar {
baseName='databasepojos'
from ('src/com/mnox/database/hibernate/pojos/v2/*.xml')
// from ('build/classes/main')
}
sourceSets {
main {
java {
srcDir 'src'
//includes = 'src/com/mnox/database/hibernate/pojos/v2/**'
//includes = ["**/*.java"]
}
}
}
allprojects {
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
FileTree hbmfilesFrom = fileTree(dir: 'src/com/mnox/database/hibernate/pojos/v2/*.hbm.xml')
task copyHBMXMLFiles(type: Copy) {
from hbmfilesFrom
into 'build/main/resources/com/mnox/database/hibernate/pojos/v2'
}
编辑3
我的.classpath文件
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="build"/>
</classpath>
答案 0 :(得分:0)
假设您的应用程序和/或测试通过类路径引用hibernate.cfg
,您需要做的就是确保src/main/resources
和{gradle
中的eclipse
是一个类路径文件夹1}}。
src
不应该在classpath上。它应该是src/main/resources
加上已编译的类目录。.classpath
和.project
吗?