eclipse - 如何在Eclipse中将来自Maven Central等的库添加到现有的非Gradle,非Maven项目

标签 eclipse maven gwt gradle dependency-management

我希望能够使用Gradle(或类似的东西)从Maven Central等下载,添加和管理3rd party库,而不必用Gradle构建(编译)我的项目。 (这是一个Eclipse GWT应用程序,我相信我需要保留现有的Eclipse GWT插件构建过程,以保持代码热交换功能)。

我希望将这些jar放入“WebContent / WEB-INF / lib”目录中并添加到我的构建路径中,以便即使不是“Gradle项目”,也可以立即开始使用这些lib。

这可能吗?如果可以,怎么办?

(我尝试将build.gradle添加到我的项目根目录,添加依赖项,然后从命令行调用“gradle build”。它说“BUILD SUCCESSFUL”(但显然.jars并未添加到我项目的classpath等),但这距离目前为止还很远,我不确定自己走的路是否正确。当我尝试右键单击该项目并调用Gradle> Tasks Quick Launcher时,它会显示“所选项目不是Gradle项目”)。

最佳答案

您想要实现的目标是可能的,但绝对不能使用gradle。您应该使用gradle war插件(或者可能存在GWT项目的任何插件-机会非常高),但是因为我不知道它如何(以及是否)与Eclipse管理的项目GWT无缝集成,我不会推荐它。
幸运的是gradle是非常灵活的系统,无需应用任何插件即可完成。

以下脚本只是概念的证明,但可以轻松扩展:

repositories {
    mavenCentral()
}

configurations {
    eclipse 
    eclipseRt
}

dependencies {
    eclipse 'com.google.guava:guava:18.0'       
    eclipseRt 'javax.servlet:servlet-api:2.5'
}

task copyToWebInfLib(type: Copy) {
    from configurations.eclipse
    into 'WEB-INF/lib'
}

task modifyEclispeClasspath << {
    //here add dependencies from *both* configurations
    //to eclipse classpath
}

说明:

首先,您需要添加适当的存储库,其中保留了所需的依赖关系。您可以添加多个存储库。

然后,您需要定义两个配置(配置基本上是依赖集的名称)。为什么两个?因为您需要提供开发和复制到WEB-INF/lib(例如guava)以及开发(例如servlet api-由servlet容器提供)所必需的依赖关系。上面提到的War插件可以为您处理此操作(providedCompile和provedRuntime配置),但是在这里您需要自己创建配置。您可以稍后更改名称。

现在出现依赖项块。在这里,您声明了在项目中使用的依赖项,但请记住用适当的配置名称标记它们。

最后,您需要一个任务(类型为Copy)来解决依赖关系-仅将那些标记为eclipse(配置名称)的任务复制到WEB-INF/lib文件夹中。第二项任务是修改适当的Eclipse配置文件。由于我每天都不使用eclipse,所以我不知道如何修改文件。但是您只需要知道格式并可能使用XmlSlurper例如添加适当的行即可。 (AFAIK eclipse 文件以XML格式保存)。

总的来说就是这样。随时提出其他问题。使用gradle wrapper也是一个好主意,但这是一个附加步骤。

关于eclipse - 如何在Eclipse中将来自Maven Central等的库添加到现有的非Gradle,非Maven项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323213/

相关文章:

java - 煤烟的 Eclipse 类路径

java - 是否可以编译 Maven java 项目,忽略有错误的 java 文件并编译没有错误的 java 文件?

java - 如何将区域设置设置为 GWT DateBox

java - IDEA 不显示反编译的 Java 类文件的 JavaDoc

java - 使用Web预览服务器在eclipse中运行Maven Spring项目

css - GWT 列表框样式

asp.net - Google Web Toolkit 或 Microsoft 技术(Silverlight、ASP.NET)

java - android eclipse错误:Error: no resource found that matches the given name (at 'text' with value '@string/red' )

java - 什么是 e(fx)clipse?

java - 在Eclipse中,在依赖maven项目的动态web项目中,如何从maven项目中获取jar?