我有一个配置为使用GORM和Groovy(1)的Micronaut项目。该项目包含许多运行良好的域类,按预期将数据持久存储在MySQL数据库中。
现在,我希望使该域类对另一个Micronaut项目(2)通用。
我尝试构建仅包含域包并将其包含在项目(2)中的JAR文件build.gradle
。这些类编译和代码所做的访问,并且我能够调用GORM方法,如findBy
,createCriteria
等也很不错一提的是所有的项目2的领域类与注释@Entity
。
但是,当我运行项目(使用IntelliJ想法)并点击其中一些代码时,我得到:
Either class [com.project2.domain.Foo] is not a
domain class or GORM has not been initialized correctly or has already
been shutdown. Ensure GORM is loaded and configured correctly before
calling any methods on a GORM entity.
我知道GORM的配置和初始化正确,因为我在项目2中创建了一个“本地”域类,并且一切正常。
编辑1:当前build.gradle
依赖项:
dependencies {
compile "io.micronaut.configuration:micronaut-kafka"
compile "io.micronaut.configuration:micronaut-hibernate-validator"
compile("io.micronaut.configuration:micronaut-hibernate-gorm") {
exclude group: 'org.grails', module: 'grails-datastore-gorm-hibernate5'
}
compile "org.grails:grails-datastore-gorm-hibernate5:6.1.9.RELEASE"
compile "io.micronaut:micronaut-http-client"
compile "io.micronaut:micronaut-http-server-netty"
compile "io.micronaut:micronaut-runtime-groovy"
compile "io.micronaut:micronaut-validation"
compileOnly "io.micronaut:micronaut-inject-groovy"
runtime "ch.qos.logback:logback-classic:1.2.3"
runtime "org.apache.tomcat:tomcat-jdbc"
runtime "mysql:mysql-connector-java:6.0.6"
testCompile "io.micronaut:micronaut-inject-groovy"
testCompile("org.spockframework:spock-core") {
exclude group: "org.codehaus.groovy", module: "groovy-all"
}
compile files('src/main/resources/libs/my-domain-lib.jar')
}
提前致谢!
我正在使用类似的设置。
我有一个带有GORM独立版本的核心库,以及几个通过gradle compile project()
或compile dep:from- artifactory:0.1-SNAPSHOT
指令使用的(Vert.x)顶点和Grails应用程序。
为了使其成为可能,我需要:
1)确保每个域类都带有注释 grails.gorm.annotation.Entity
2)Application.groovy
像这样调整Grails :
class Application extends GrailsAutoConfiguration {
@Override
protected boolean limitScanningToApplication() {
false
}
@Override
Collection<String> packageNames() {
super.packageNames() + 'your.domainclass.package'
}
}
3)对于no-Grails项目,我需要自己查找和初始化域类,并且对于每个DB来说,它可能是不同的(mine是的Mongo-GORM
)
ClassPathScanningCandidateComponentProvider compProvider = new ClassPathScanningCandidateComponentProvider( false )
compProvider.addIncludeFilter new AnnotationTypeFilter( Entity )
def domainClasses = compProvider.findCandidateComponents( 'io.my.domain' ).collect{ BeanDefinition bd -> Class.forName bd.beanClassName }
new MongoDatastore( config, *domainClasses )
我很难从我创建的jar文件中导入类和方法。IntelliJ中的java文件。这是一种打印到控制台的简单方法,包含以下内容。 每当我试图用 我得到了无法解决符号'Gazutils' 我在创造新的世界。jar文件并将其导入项目结构,如下所示: 项目结构 然后 建立 然后我将. jar文件复制到我想在和 右键点击罐子 这将它添加为依赖项,但我似乎仍然无法访问或导入类或方法
我有一个项目。对项目进行更改后,我将项目打包成一个Uber Jar文件,并将其上传到备份中。我在想,如果我的电脑坏了,或者我把所有的代码都丢给了这个项目,我能只用Uber Jar文件把项目拿回来吗?还是这个项目会永远消失? 如何将这个Jar文件作为一个项目打开,并查看其中的所有Java代码?
我正在使用IntelliJ 2016,我成功添加了一些Maven依赖项(用于ImageJ插件开发),这两个外部库以jar文件的形式显示。我已经在项目结构中添加了它们- 其中一个正在成功导入,而另一个没有。有效的在jar的子文件夹中 导入fiji.threshold.Auto_Local_Threshold 另一个就在罐子下面,当我尝试时,名字无法识别: 导入MultipleKymograph_ 我
我有一个Java项目,它被其他各种Java和Android项目大量使用。该项目包含一些JAR库,除Android项目外,所有项目都应使用这些JAR库(确切地说,Android项目是一个Android库项目)。 我在Java项目的Eclipse构建路径首选项中将JAR标记为“导出”。然而,Android项目不应该导入这些库(因为它们Java使用Android上不可用的一些类的库),但它应该导入其余的
我今天花了几个小时在谷歌上搜索大多数解决方案都过时了。我在项目所遵从的窗口上使用eclipse,但我无法使它成为一个独立的应用程序,如果没有: 有哪些方法可以将JavaFX11项目导出到可执行jar中,而无需在导出后将其链接到JavaFX-SDK-11.0.2? 谢了。
我正在开发一款需要服务器的android游戏。我们设置了一个git,其中有三个文件夹:客户端、服务器和共享: 客户端包含Android Studio项目。服务器包含一个Eclipse项目,它是我们的服务器和数据库。Shared包含我想在Eclipse和Android Studio项目中使用的java类。 在Eclipse中,我通过将文件导入为“文件系统”,成功地从共享中加载了文件。(它创建了一个包