Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven汇编插件-多版本:true_Java_Maven_Log4j2_Java 11 - Fatal编程技术网

Java Maven汇编插件-多版本:true

Java Maven汇编插件-多版本:true,java,maven,log4j2,java-11,Java,Maven,Log4j2,Java 11,我的多jar应用程序在Java 11中运行,并显示与Log4j2相关的警告: 警告:不支持sun.reflect.Reflection.getCallerClass。这将影响性能 它没有崩溃,但很困扰我,因为运营团队(AppDynamics monitor)问过我这件事。我读到我需要在清单中使用“Multi-Release:true”条目,但我不知道如何告诉Maven程序集插件添加它 我没有在pom.xml中使用任何其他插件。我应该使用Maven Shade插件吗 无论如何,这里是我的pom.x

我的多jar应用程序在Java 11中运行,并显示与Log4j2相关的警告:

警告:不支持sun.reflect.Reflection.getCallerClass。这将影响性能

它没有崩溃,但很困扰我,因为运营团队(AppDynamics monitor)问过我这件事。我读到我需要在清单中使用“Multi-Release:true”条目,但我不知道如何告诉Maven程序集插件添加它

我没有在pom.xml中使用任何其他插件。我应该使用Maven Shade插件吗

无论如何,这里是我的pom.xml的Maven汇编插件部分

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>3.2.0</version>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>

maven汇编插件
3.2.0
带有依赖项的jar
组装
包裹
单一的
我包含的库(我也写过)使用log4j2作为依赖项,如下所示:

<!-- Log4j 2 -->

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.12.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.12.1</version>
</dependency>

org.apache.logging.log4j
log4japi
2.12.1
org.apache.logging.log4j
log4j型芯
2.12.1

如何消除此警告?

您需要在jar的MANIFEST.MF中将Multi-Release设置为true。在汇编插件中,您应该能够通过添加

      <archive>
        <manifestEntries>
          <Multi-Release>true</Multi-Release>
        </manifestEntries>
      </archive>

真的
转到程序集配置的配置部分

您还可以使用jar插件来创建jar。你会这么做的

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
    <archive>
        <manifestEntries>
            <Multi-Release>true</Multi-Release>
        </manifestEntries>
    </archive>
    <finalName>mr-jar-demo.jar</finalName>
  </configuration>
</plugin>

org.apache.maven.plugins
maven jar插件
真的
mr-jar-demo.jar

您可以使用以下内容添加maven assembly插件的配置: