使用Maven创建EAR

使用Maven创建EAR,maven,maven-assembly-plugin,Maven,Maven Assembly Plugin,我想用Maven创建一个EAR,但是因为我在一个纯Tycho的世界里,我不能使用Maven EAR插件,只能使用Maven汇编插件(这很好) 甚至就在这个网站上,也有人指出,maven汇编插件可以构建EAR,尽管网站上说不可以 但是,当我使用以下方式定义EAR格式时: <formats> <format>ear</format> </formats> 它可以很好地创建EAR,但是对于mvn安装它会带来以下异常: [错误]未能执行目标org

我想用Maven创建一个EAR,但是因为我在一个纯Tycho的世界里,我不能使用
Maven EAR插件
,只能使用
Maven汇编插件
(这很好)

甚至就在这个网站上,也有人指出,
maven汇编插件
可以构建EAR,尽管网站上说不可以

但是,当我使用以下方式定义EAR格式时:

<formats>
    <format>ear</format>
</formats>
它可以很好地创建EAR,但是对于
mvn安装
它会带来以下异常:

[错误]未能执行目标org.apache.maven.plugins:maven安装插件:2.5.2:install(默认安装)on project org.acme.application:未能安装工件组:org.acme.application:jar:1.9.126-SNAPSHOT:C:\workspace\application\target\application.jar(Das系统kann die angegebene Datei nicht finden)->[帮助1]

(这是德语中“找不到文件”的意思,总有一天我会让他打印出可读的错误消息。)


当然,现在我可以将JAR复制到EAR,而不只是重命名它,但我想我首先得到了第二个机会:是否可以使用
maven汇编插件创建EAR
?如果是,如何使用?

使用包装类型
ear
并定义jar上ear模块中的依赖项,这也适用于OSGi…除此之外,制作一个具有2-3模块(OSGi)的简单示例项目,将其放在Github上,以便我们可以查看它…@khmarbaise我不能使用那种包装类型,因为EAR是由一个特性的内容构建的(打包类型是
eclipsefeature
)。我知道,但是您可以在EAR配置中将生成的jar文件添加为jar模块…@khmarbaise Nope,因为这需要一个Maven依赖性。我只能从其他项目的目标/文件夹中复制文件。
<plugin>
    <groupId>com.coderplus.maven.plugins</groupId>
    <artifactId>copy-rename-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
        <execution>
            <id>rename-ear</id>
            <phase>verify</phase>
            <goals>
                <goal>rename</goal>
            </goals>
            <configuration>
                <sourceFile>${basedir}/target/${earName}.jar</sourceFile>
                <destinationFile>${basedir}/target/${earName}.ear</destinationFile>
            </configuration>
        </execution>
    </executions>
</plugin>