标签: maven-shade-plugin

20
推荐指数
1
解决办法
6660
查看次数

如何在maven shade插件中设置清单类路径?

我正在使用shade插件,除了能够为manifest via设置Class-Path之外,一切正常

 <transformer 
        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
        <mainClass>com.generic.App</mainClass>  
        <classPath>. ./config</classPath>                           
    </transformer>
Run Code Online (Sandbox Code Playgroud)

我明白了

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default)              on project SpringThing: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:2.1:shade for parameter transformer: Cannot find setter, adder nor field in org.apache.maven.plugins.shade.resource.ManifestResourceTransformer for 'classPath' -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

看文件

http://maven.apache.org/plugins/maven-shade-plugin/apidocs/org/apache/maven/plugins/shade/resource/ManifestResourceTransformer.html

应该能够解析任何有效的清单资源吗?我试过clss-path Class-Path ClassPath什么都行不通......

我需要classpath来设置外部app属性文件的位置.

由于一个众所周知的问题,我使用的是阴影插件而不是汇编:

http://blog.idm.fr/2009/09/maven-assembly-plugin-and-spring-namespace-handlers.html

顺便说一下,我可以很容易地在装配中做到这一点:(并且它有效)

 <manifestEntries>
  <Class-Path>. ./config</Class-Path>
 </manifestEntries>
Run Code Online (Sandbox Code Playgroud)

我不能通过maven使用oneJar插件,因为你也无法设置清单条目.(我不认为?)

有任何想法吗?

manifest classpath maven maven-assembly-plugin maven-shade-plugin

16
推荐指数
1
解决办法
2万
查看次数

如何在多模块项目中配置Maven shade插件?

大家!我一直试图使用Maven Shade插件获取jar,但我仍然没有获得成功:(

这是我的项目结构:

MainModule
  -Module1
    -src
    -pom.xml
  -Module2
    -src
    -pom.xml
  -pom.xml
Run Code Online (Sandbox Code Playgroud)

Module1(pom.xml):

<parent>
    <artifactId>MainModule</artifactId>
    <groupId>com.plugintest</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module1</artifactId>
Run Code Online (Sandbox Code Playgroud)

Module2(pom.xml):

<parent>
    <artifactId>MainModule</artifactId>
    <groupId>com.plugintest</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module1</artifactId>
Run Code Online (Sandbox Code Playgroud)

MainModule(pom.xml):

<groupId>com.plugintest</groupId>
<artifactId>MainModule</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
    <module>Module1</module>
    <module>Module2</module>
</modules>
<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.2</version>
        <executions>
            <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            </execution>
        </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

根据这段代码,我得到2个jar文件(Module1-version.jar和Module2-version.jar).但这不是我想要的.我希望获得1个jar文件(MainModule-version.jar),其中包含另一个(Module1和Module2).

请告诉我,为什么这个Shade插件不起作用?

java maven maven-shade-plugin

16
推荐指数
1
解决办法
6565
查看次数

Maven无法编译java 1.8

我正在尝试使用maven来构建一个jar但我不断收到错误

ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 
(default-compile) on project Application: Fatal error compiling: invalid target release: 1.8 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Run Code Online (Sandbox Code Playgroud)

mvn -v输出

mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T09:29:23-08:00)
Maven …
Run Code Online (Sandbox Code Playgroud)

maven maven-assembly-plugin maven-shade-plugin

15
推荐指数
5
解决办法
7万
查看次数

是否有用于创建控制台应用程序的maven archtype?

是否可以通过mvn archetype:generate具有main函数生成maven存根项目,并且构建过程的一部分包括使App.cmd/App.sh从shell运行应用程序?

似乎我需要maven-shade-plugin来创建一个带有包装器脚本的控制台应用程序jar,用于命令行启动.但是,我不知道它们是否是一个用于配置maven项目以使用它并创建一个空控制台应用程序的archtype.

maven-2 maven-shade-plugin

14
推荐指数
2
解决办法
4649
查看次数

如何判断哪个签名jar导致maven-shade-plugin失败?

要运行maven-shade-plugin,由于签名依赖,我必须使用此处描述的方法,如下所示:

<plugin>
    <artifactId>maven-shade-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals><goal>shade</goal></goals>
            <configuration>
                <filters>
                    <filter>
                        <!-- filter out signature files from signed dependencies, else repackaging fails with security ex -->
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

问题:如何判断哪个 JAR导致插件失败?它似乎不是最近提到的那个.

调试输出的尾部:

[DEBUG] We have a duplicate org/jdom2/xpath/util/AbstractXPathCompiled.class in C:\Users\me\aaaa-1.11.0-SNAPSHOT.jar
[DEBUG] We have a duplicate org/jdom2/xpath/util/XPathDiagnosticImpl.class in C:\Users\me\aaaa-1.11.0-SNAPSHOT.jar
[DEBUG] Processing JAR C:\Users\me\bbbb-1.11.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Retrievers JAR ................................ FAILURE [  9.581 s]
[INFO] Retrievers .................................... …
Run Code Online (Sandbox Code Playgroud)

manifest.mf jar-signing maven-3 maven maven-shade-plugin

14
推荐指数
1
解决办法
8174
查看次数

使用OpenEJB构建独立的可执行JAR

我正在构建一个CLI工具,它集成了几个EJB模块.出于这个原因,我需要构建一个fat jar,然后作为独立的应用程序执行.

但是,使用以下堆栈跟踪执行此操作(注意:fat jar与其位于同一目录中)失败:java -jarconf/openejb.xmlfat jar

INFORMATION - PersistenceUnit(name=demo, provider=org.hibernate.jpa.HibernatePersistenceProvider) - provider time 2706ms
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/MEJB!javax.management.j2ee.ManagementHome")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/MEJB")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/openejb/Deployer!org.apache.openejb.assembler.Deployer")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/openejb/Deployer")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/openejb/ConfigurationInfo!org.apache.openejb.assembler.classic.cmd.ConfigurationInfo")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/openejb/ConfigurationInfo")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/DemoServiceImpl!com.github.rzo1.service.DemoService")
INFORMATION - Jndi(name="java:global/DemoMain/demo-shade-1.0-SNAPSHOT/DemoServiceImpl")
INFORMATION - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@557c8e7e
INFORMATION - Closing DataSource: demoDS
INFORMATION - Closing DataSource: demoDSNonJTA
Exception in thread "Thread-0" java.lang.RuntimeException: org.apache.openejb.OpenEjbContainer$AssembleApplicationException: javax.enterprise.inject.spi.DeploymentException: couldn't start owb context
       at com.github.rzo1.DemoMain.run(DemoMain.java:116)
       at java.lang.Thread.run(Thread.java:745)
Caused …
Run Code Online (Sandbox Code Playgroud)

java ejb maven openejb maven-shade-plugin

14
推荐指数
1
解决办法
778
查看次数

什么是阴影罐?uber jar和shaded jar之间有什么区别/相似之处?

你能帮忙解释什么是阴影罐,有什么maven-shade-plugin用?什么是超级罐子.

java maven maven-shade-plugin

14
推荐指数
1
解决办法
6860
查看次数

如何配置maven shade插件以在我的jar中包含测试代码?

我使用shade maven插件来构建我的项目,以便它的所有依赖项都包含在一个jar中(这使得在Hadoop上运行它更容易).默认情况下,Shade似乎排除了我的测试代码,这是可以理解的.由于我想对我的集群运行集成测试,我希望设置另一个配置文件来为此目的构建一个单独的jar.有没有办法配置这个插件还包括测试代码?

java hadoop maven maven-shade-plugin

13
推荐指数
4
解决办法
1万
查看次数

使用maven-bundle-plugin和maven-shade-plugin

我正在使用maven-shade-plugin在我的构建的包阶段重新定位一些包.我也使用maven-bundle-plugin来生成清单.问题是bundle插件在shade插件之前运行(在进程类阶段),并且在生成的manifest的导出中不包含任何阴影包.

我怎样才能使这两个插件彼此玩得很好,这样我的重定位包就像bundle插件一样对待任何其他包?

-

根据要求,我的POM的Shade和bundle部分:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <filters>
        <filter>
          <artifact>cglib:cglib</artifact>
          <includes>
            <include>net/sf/cglib/core/**</include>
            <include>net/sf/cglib/proxy/**</include>
          </includes>
        </filter>
      </filters>
      <relocations>
        <relocation>
          <pattern>net.sf.cglib</pattern>
          <shadedPattern>org.modelmapper.internal.cglib</shadedPattern>
        </relocation>
        <relocation>
          <pattern>org.objectweb.asm</pattern>
          <shadedPattern>org.modelmapper.internal.asm</shadedPattern>
        </relocation>
      </relocations>
    </configuration>
  </plugin>

  <plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <executions>
      <execution>
        <id>bundle-manifest</id>
        <phase>process-classes</phase>
        <goals>
          <goal>manifest</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <instructions>
        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
        <Export-Package>
          org.modelmapper,
          org.modelmapper.builder,
          org.modelmapper.config,
          org.modelmapper.convention,
          org.modelmapper.spi
        </Export-Package>
        <Private-Package>
          org.modelmapper.internal.**
        </Private-Package>
        <Import-Package>
          *
        </Import-Package>
        <Include-Resource>
          {maven-resources},
          {maven-dependencies}
        </Include-Resource>
      </instructions>
    </configuration>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

采取从这里

osgi maven maven-shade-plugin maven-bundle-plugin

13
推荐指数
2
解决办法
4222
查看次数