【问题标题】:maven-shade-plugin : make a jar whereas we are in war Project?maven-shade-plugin:在战争项目中制作一个罐子?
【发布时间】:2014-06-07 22:13:43
【问题描述】:

问题在标题中。 我成功地先做一个罐子(项目包装罐子)....然后我在 id do 之前移动它

mvn 清洁

把它放在别处。

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

mvn 全新安装

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

有没有更清晰的方法可以使用 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 时我都必须更改它。

谢谢

【问题讨论】:

  • 我想你想将你的一些代码添加到一个 jar 中,然后将它添加到战争中?
  • 我正在尝试使用 Runtime.exec stackoverflow.com/questions/23223909/… 的 Spring bean 执行我的 jar。当我使用我的 2 步方法时它正在工作,但它有点麻烦。我希望在创建战争的同时仅从 mvn clean install 生成具有打包依赖项的 jar,然后我从我的 Web 应用程序中的 RunTime.exec() 调用它来执行一些后台进程(邮件,解析大文件)...

标签: java maven-3 war executable-jar maven-shade-plugin


【解决方案1】:

对我来说,您正在尝试在同一个 Maven 模块中构建两个产品(一个 jar 和一个战争)。 我真的不明白您要求在同一个模块中使用它吗?你为什么要使用 maven shade 插件?

这是我首先制作一个 jar,然后使用之前刚刚生成的 jar 进行战争的方式:

  • 定义 2 个模块的父模块(包装“pom”):module_myjar 和 module_mywar
    • 子模块module_myjar(包装“jar”)
    • 一个子模块module_mywar(打包“war”)这个模块可以包含jar作为依赖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 2014-02-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多