我有一个EAR项目,它应该包含一个或多个瘦的WAR。我已经尝试了一切使得该项目与eclipse一起工作,但是当我从命令行运行它时,无法让eclipse像工具(maven和gradle)那样做。
我没有可用于让我的项目与eclipse一起工作的工作示例吗?请帮助我,我发现自己是否有人真正使用这些工具,就像我希望他们这样的项目一样。
答案 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/