我刚刚从Ant切换到Maven,并试图找出建立基于EAR文件的企业项目的最佳实践?
假设我想创建一个非常标准的项目,其中包含EJB的jar文件,Web层的WAR文件和封装的EAR文件,以及相应的部署描述符.
我该怎么办呢?archetypeArtifactId=maven-archetype-webapp用war文件创建项目,并从那里扩展?什么是最好的项目结构(和POM文件示例)?你在哪里粘贴与ear文件相关的部署描述符等?
谢谢你的帮助.
我在maven有一个包含5个模块的项目.现在,当我进行"mvn clean install"时,它会生成一个包含两个罐子的耳朵,一个战争和一个来自其他模块的sar.
所有文件名都包含版本,例如projectx-ear-2.0.0.ear,projectx-client-2.0.0.jar等.
我需要重命名其中一个罐子和最后一个耳朵以省略文件名中的版本.它应该如下所示:
projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web
Run Code Online (Sandbox Code Playgroud)
现在我正在使用以下插件来构建:maven-compiler-plugin和maven-release-plugin
实现我期望的结果的最佳方法是什么?
我想存储Web项目(ear/war文件)之外的Web项目的配置.应用程序不应该知道它在哪个容器中运行(WebSphere/JBoss等).
处理这个问题的最佳方法是什么?
JNDI是一个干净的方式吗?如果JNDI可以解决我的问题,我应该如何配置它?(自定义对象?)
在我的例子中,SOAP/WS端点只有简单的Key => Value对(String,String).
Eclipse WTP中不同类型的Java EE项目之间有什么不同?
有:
什么以及为什么.apt_generated文件夹是在Eclipse或RAD工作区内的Web项目中创建的?
我们有一个有很多战争的解决方案.从他们都使用冬眠和春天的意义来看,战争是相似的.这意味着我们在每次战争中都有许多相同的罐子.这成为一个问题,因为耳朵的大小开始增长不成比例.
我想使用Maven来计算依赖关系并将多个战争中常见的所有jar放到EAR的根目录中.
我尝试使用j2ee archetype(maven-archetype-j2ee-simple)组织我的项目,但所有的战争仍然与WEB-INF/lib中的依赖项打包在一起.有没有办法让Maven计算公共依赖关系并将它们放到EAR中,就像他在构造war或jar时能够计算所有过渡依赖关系一样?
我正在尝试使用Gradle 构建一个耳朵.
我的项目树如下:
/project
|
|--> /web-application
| |
| |--> /src (stuff of web app)
| |
| |--> build.gradle
|
|--> build-gradle
|--> settings.gradle
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用ear插件生成耳朵,但是当我这样做时,我在web应用程序的build目录下创建gradle assemble了war,但是在生成的ear中我有一个jar应用程序.gradle配置文件非常简单,它们是:
项目/的build.gradle
apply plugin: 'ear'
repositories {
mavenCentral()
}
dependencies {
deploy project(':web-application')
earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}
Run Code Online (Sandbox Code Playgroud)
项目/ Web的应用程序/的build.gradle
apply plugin: 'war'
repositories {
mavenCentral()
}
dependencies {
compile group: 'log4j', …Run Code Online (Sandbox Code Playgroud) 我在我的开发环境中使用Eclipse Blue 10和Maven 3.
我通常按照以下路径从SVN导入maven项目:
File > Import> SVN > Checkout Projects from SVN
Run Code Online (Sandbox Code Playgroud)
然后导入所有maven项目:
Right click on imported project > Maven4MyEclipse> Existing Maven Projects
Run Code Online (Sandbox Code Playgroud)
我有一个名为'project-ear'的maven模块,这个模块是将我的所有Web应用程序绑定到一个耳中.
但每当我将EAR模块导入为eclipse项目时,eclipse会在"Problems"选项卡中提示以下错误:
项目配置与pom.xml不是最新的.运行项目配置更新.
如何解决这个问题?我没有看到任何"运行项目配置更新"的方法.
请帮忙.
EAR模块的Pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company.xxx</groupId>
<artifactId>my</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.company.xxx.ear</groupId>
<artifactId>my-ear</artifactId>
<packaging>ear</packaging>
<name>my-ear</name>
<build>
<finalName>web-app</finalName>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.5</version>
<configuration>
<modules>
<webModule>
<groupId>com.company.xxx.myweb</groupId>
<artifactId>my-web</artifactId>
<contextRoot>/txcs</contextRoot>
</webModule>
</modules>
<generateApplicationXml>true</generateApplicationXml>
<displayName>web-app</displayName>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.company.xxx.myweb</groupId>
<artifactId>my-web</artifactId>
<type>war</type>
<version>${project.version}</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
将应用程序部署为EAR(使用1个EJB和1个WAR模块)与单独的模块有什么区别?我想使用GlassFish 3 Web配置文件,但它不支持EAR存档.我可以简单地将EJB和WAR用作单独的模块吗?还有其他选择吗?
如何在这个和这个构建文件可以使用providedCompile?
thufir@doge:~/NetBeansProjects/gradleEAR$
thufir@doge:~/NetBeansProjects/gradleEAR$ gradle clean
FAILURE: Build failed with an exception.
* Where:
Build file '/home/thufir/NetBeansProjects/gradleEAR/build.gradle' line: 40
* What went wrong:
A problem occurred evaluating root project 'gradleEAR'.
> Could not find method providedCompile() for arguments [javax:javaee-api:7.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 12.721 secs
thufir@doge:~/NetBeansProjects/gradleEAR$
plugins { …Run Code Online (Sandbox Code Playgroud)