使用eclipse的Maven / Gradle工作叠加示例

时间:2013-03-01 01:21:43

标签: java eclipse maven build gradle

我有一个EAR项目,它应该包含一个或多个瘦的WAR。我已经尝试了一切使得该项目与eclipse一起工作,但是当我从命令行运行它时,无法让eclipse像工具(maven和gradle)那样做。

我没有可用于让我的项目与eclipse一起工作的工作示例吗?请帮助我,我发现自己是否有人真正使用这些工具,就像我希望他们这样的项目一样。

2 个答案:

答案 0 :(得分:2)

在上一次项目中,我遇到了使用Eclipse支持maven的问题。因为Eclipse m2插件存在问题。

因此,对我来说最好的解决方案是通过一些shell脚本从命令行构建一个耳朵。要在IDE中打开项目,我使用了maven eclipse plugin,因此我通过maven生成了eclipse工作区。

使用Eclipse External Tools,您可以运行shell脚本,从命令行构建/运行EE应用程序非常方便。

这同样适用于gradle,但看起来Eclipse Gradle插件更稳定,现在我在Gradle项目中使用插件。

如果它对您有用,您可以查看github test project来说明如何制作maven multymodule war项目。您还可以找到如何为此项目生成eclipse工作区的简短说明。生成工作空间后,您可以将现有项目导入工作区。

答案 1 :(得分:0)

这是一个包含war的示例Ear项目(请参阅下面的img结构中的img)

MainDir包含2个文件和1个名为war的目录

文件 settings.gradle 包含

include 'war'

文件 build.gradle 包含

apply plugin: 'ear'

repositories {
    mavenCentral()
}

dependencies {
    deploy project(':war')
    //earlib group: YOUR_DEPENDENCIES
}
war 目录的

build.gradle包含

apply plugin: 'war'
apply plugin: 'jetty' // you can call gradle jRW

repositories {
    mavenCentral()
}

dependencies {
    //compile group: YOUR_DEPENDENCIES
}

httpPort = 8080 //jetty start port
stopPort = 8081 //jetty stop port

文件 HelloWorld.java 包含

public class HelloWorld {
    public String getHello() {
        return "Hello world!";
    }
}

文件 index.jsp 包含

<jsp:useBean id="helloWorld" class="your_package.HelloWorld"/>
<html>
<p>${helloWorld.hello}</p>
</html>

现在打开cmd-&gt; MainDir(或者您可以搜索eclipse-marketplace以获取gradle并直接从eclipse执行此步骤)并输入

gradle jRW//short for jettyRunWar

现在打开

localhost:8080/war/

project structure