Java maven shade插件:制作一个罐子,而我们正在进行战争项目?

Java maven shade插件:制作一个罐子,而我们正在进行战争项目?,java,maven-3,war,executable-jar,maven-shade-plugin,Java,Maven 3,War,Executable Jar,Maven Shade Plugin,问题在标题中。 我成功地首先做了一个jar项目打包jar…然后在我做之前移动它 mvn清洁 把它放在别处 或者我在一个战争项目中,所以我必须将项目包装重命名为战争,然后我必须做一个 mvn清洁安装 我得到了我的战争。然后我从我的war中导入第一个要使用的罐子 是否有一种更清晰的方法可以使用maven shade插件生成war和jar <plugin> <groupId>org.apache.maven.plugins</groupId> <artifac

问题在标题中。 我成功地首先做了一个jar项目打包jar…然后在我做之前移动它

mvn清洁

把它放在别处

或者我在一个战争项目中,所以我必须将项目包装重命名为战争,然后我必须做一个

mvn清洁安装

我得到了我的战争。然后我从我的war中导入第一个要使用的罐子

是否有一种更清晰的方法可以使用maven shade插件生成war和jar

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
    <execution>
         <phase>package</phase>
        <goals>
             <goal>shade</goal>
        </goals>
        <configuration>
          <finalName>${project.artifactId}-final</finalName>

              <transformers>
                    <transformer  implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.clb.genomic.lyon.external.MainExternal</mainClass>
                   </transformer>
                   <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                         <resource>META-INF/spring.handlers</resource>
                     </transformer>
                     <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                           <resource>META-INF/spring.schemas</resource>
                     </transformer>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                        <resource>META-INF/spring.tooling</resource>
                  </transformer>
              </transformers>
        </configuration>
    </execution>
</executions>

包装如下

战争/罐子

在文件开头的项目描述中,我必须在每次抛出maven时更改它


感谢您在同一个maven模块中尝试构建两个产品:jar和war。 我真的不明白你的要求,在同一个模块中有这个?为什么要使用maven shade插件

下面是我将遵循的方法,首先制作一个jar,然后使用前面刚刚生成的jar制作一场战争:

一个父模块打包pom,它定义了两个模块:module_myjar和module_mywar 子模块module_myjar打包jar 子模块module_mywar打包war这个模块可以包含jar作为依赖项。
我想您想将一些代码添加到jar中,然后再将其添加到war中?我正在尝试使用spring中的bean和Runtime.exec执行我的jar。当我使用我的2步方法时,它是有效的,但它有点麻烦。我希望在创建war的同时,只从一个mvn clean安装中生成带有打包依赖项的jar,然后在我的web应用程序中从RunTime.exec调用它来执行一些后台处理邮件、解析大文件。。。