我有一个 EAR 项目,它应该包含一个或多个瘦 WAR。我已经尝试了一切以使该项目与 eclipse 一起使用,但是当我从命令行运行它们时,无法使 eclipse 与工具(maven 和 gradle)一样。
有没有我可以用来让我的项目使用 Eclipse 的工作示例?请帮助我,我已经问自己是否有人真的像我希望的那样使用这些工具来完成此类项目。
在我上次的项目经验中,我在使用 Eclipse 支持 Maven 时遇到了问题。由于 Eclipse m2 插件中的问题。
所以对我来说最好的解决方案是通过一些 shell 脚本从命令行构建一个耳朵。要在 IDE 中打开项目,我使用了maven eclipse plugin,因此我通过 maven 生成了 eclipse 工作区。
使用Eclipse 外部工具,您可以运行 shell 脚本以非常方便地从命令行构建/或运行您的 EE 应用程序。
这同样适用于 gradle,但看起来 Eclipse Gradle 插件更稳定,现在我在我的 Gradle 项目中使用插件。
如果它对您有用,您可以查看github 测试项目以说明如何制作 maven 多模块战争项目。您还可以找到如何为该项目生成 Eclipse 工作区的简短说明。生成工作区后,您可以将作为现有项目导入您的工作区。
这是一个包含war的示例Ear项目(有关目录结构,请参阅下面的img)
MainDir 包含 2 个文件和 1 个名为 war 的目录。
文件settings.gradle包含
include 'war'
文件build.gradle包含
apply plugin: 'ear'
repositories {
mavenCentral()
}
dependencies {
deploy project(':war')
//earlib group: YOUR_DEPENDENCIES
}
战争目录的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->MainDir(或者您可以在 eclipse-marketplace 中搜索 gradle 并直接从 eclipse 执行此步骤)并输入
gradle jRW//short for jettyRunWar
现在开放
localhost:8080/war/