Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在eclipse中将Java Maven项目依赖项正确添加到Grails Maven项目中_Java_Eclipse_Maven_Grails_Groovy - Fatal编程技术网

如何在eclipse中将Java Maven项目依赖项正确添加到Grails Maven项目中

如何在eclipse中将Java Maven项目依赖项正确添加到Grails Maven项目中,java,eclipse,maven,grails,groovy,Java,Eclipse,Maven,Grails,Groovy,我正在使用: Eclipse开普勒服务版本2 M2E-针对Eclipse1.4.0.xxx的Maven集成 Grails2.1.2 Groovy/Grails工具套件3.4.0 我的方法是创建一个Grails应用程序,然后将其转换为Maven项目,然后通过“Java构建路径”->“项目”选项添加一个Java Maven项目作为依赖项。 但是每次我想要运行Grails应用程序时,Grails应用程序都无法解析来自另一个javamaven项目的类。 这可能是一个非常简单的问题,但到目前为止我找不

我正在使用:

  • Eclipse开普勒服务版本2
  • M2E-针对Eclipse1.4.0.xxx的Maven集成
  • Grails2.1.2
  • Groovy/Grails工具套件3.4.0
我的方法是创建一个Grails应用程序,然后将其转换为Maven项目,然后通过“Java构建路径”->“项目”选项添加一个Java Maven项目作为依赖项。 但是每次我想要运行Grails应用程序时,Grails应用程序都无法解析来自另一个javamaven项目的类。 这可能是一个非常简单的问题,但到目前为止我找不到任何解决方案


提前谢谢你

库项目必须是一个Maven项目,然后必须将依赖项添加到“Main”项目中的pom.xml文件中

项目的依赖项部分可能如下所示

<dependencies>
        <dependency>
            <groupId>your-library-project-group</groupId>
            <artifactId>your-library-artifact-id</artifactId>
            <version>your-library-version</version>
            <scope>compile</scope>
        </dependency>
</dependencies>

您的库项目组
您的库工件id
您的库版本
编译

我认为更好的方法是将jar发布到本地存储库中,然后您可以通过配置BuildConfig.groovy将依赖项添加到grails应用程序中:

1) 将本地maven回购协议添加到项目中:

repositories {
    inherits true
    checksums false
    grailsPlugins()
    mavenLocal()
    mavenCentral()
    }
2) 添加您的依赖项:

dependencies {
compile: "<your_group_id> : <your_artifact_id> : <version>"
...
}
依赖项{
编译::“
...
}

当您在grails env中启动项目时,它会自动下载您的jar

我遇到了同样的问题,无法在单独的Maven模块中解析对类的更改。对我有效的是:

  • 将依赖项添加到Grails项目的pom.xml中(以便您可以在IDE之外构建)
  • 不要将Maven特性添加到Grails项目中。其他项目仍将具有Maven特性,但Grails项目不应如此
  • 在Grails项目的属性中,选择Java构建路径->项目并添加其他Maven项目。这允许Eclipse立即找到对另一个项目的更改
  • 在启用JRebel的情况下启动Grails(这样您就可以在单独的Maven模块中重新加载对Java类的更改)

上述步骤允许在GGTS 3.4和Grails 2.1.2中平滑地重新加载类,而无需重建JAR或重新启动服务器。可能是Maven集成在以后的版本中有所改进,因此不再需要上述解决方法。

不,对于mavenized grails项目,您不能在BuildConfig.groovy中引用依赖项。依赖关系必须转到pom.xml。我同意,但作为一般方法,如果您可以保留grails依赖关系生成器而不是maven pom,我建议使用该方法。它有一些优点,比如可靠性,并且与下一个grails版本兼容(gradle应该在Grails3.0路线图之后很快出现)https://...“}和编译命令,正如答案所说。